Я решил дать новое промежуточное ПО Google Oauth2 попробовать, и он в значительной степени сломал все. Вот моя конфигурация поставщика от startup.auth.cs. Когда включено, все поставщики, включая провайдера google, получают 500 внутренних серверов на Challenge. Однако детали внутренней ошибки сервера недоступны, и я не могу понять, как включить любую отладку или трассировку для промежуточного программного обеспечения Katana. Мне кажется, что они были в спешке, чтобы получить промежуточное ПО Google Oauth из двери.
//// GOOGLE
var googleOptions = new GoogleOAuth2AuthenticationOptions
{
ClientId = "228",
ClientSecret = "k",
CallbackPath = new PathString("/users/epsignin")
SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
Provider = new GoogleOAuth2AuthenticationProvider
{
OnAuthenticated = context =>
{
foreach (var x in context.User)
{
string claimType = string.Format("urn:google:{0}", x.Key);
string claimValue = x.Value.ToString();
if (!context.Identity.HasClaim(claimType, claimValue))
context.Identity.AddClaim(new Claim(claimType, claimValue, XmlSchemaString, "Google"));
}
return Task.FromResult(0);
}
}
};
app.UseGoogleAuthentication(googleOptions);
Код ActionMethod:
[AllowAnonymous]
public ActionResult ExternalProviderSignIn(string provider, string returnUrl)
{
var ctx = Request.GetOwinContext();
ctx.Authentication.Challenge(
new AuthenticationProperties
{
RedirectUri = Url.Action("EPSignIn", new { provider })
},
provider);
return new HttpUnauthorizedResult();
}