【发布时间】:2018-08-01 20:28:11
【问题描述】:
我有一个控制器,代码如下:
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
在我的 Startup.Auth.cs 中,我有以下内容:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
{
ClientId = "",
ClientSecret = "",
Scope = "openid email profile",
ResponseType = "id_token",
Authority = String.Format(CultureInfo.InvariantCulture, IdpInstance, "common", "/v2.0"),
RedirectUri = "https://localhost/abcdeg.ClaimsAdapter.WebApp/Oidc/Authenticate",
CallbackPath = new PathString("/"),
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
},
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthorizationCodeReceived = OnAuthorization,
SecurityTokenValidated = OnTokenValidate,
AuthenticationFailed = OnAuthenticationFailed,
RedirectToIdentityProvider = OnRedirectToIdentityProvider
},
});
我假设,在 OnTokenValidate 内,我应该得到我的声明。如果是这样,我将如何去做。我知道我有一个 SecurityTokenValidatedNotification,但该对象的任何方法或成员似乎都没有公开与声明相关的任何内容。我需要以某种方式存储这些声明,以便我可以在我的控制器上检索它。
【问题讨论】:
标签: owin openid-connect