0

我有带有个人用户帐户的 VS2013 MVC5 项目。我修改Startup {Configuration(IAppBuilder app)}了这UseOpenIdConnectAuthentication是唯一允许的身份验证。

用户可以使用开箱即用的 MVC 项目模板管道在 AspNetIdentity DB 中注册。注册后,用户使用 OIDC 登录。

OpenID Connect STS(IdentityServer3 with AspNetIdentity)返回一个带有声明和角色的安全令牌。这些声明可ClaimsPrincipalRequest.GetOwinContext().Authentication.User.

Controller.User但是, (当前 HTTP 请求上下文)中缺少这些声明。

ClaimsPrincipal让两者匹配是一件好事吗?

问题:如果是这样,我该怎么做以及在哪里做?我不是专家,想知道OpenIdConnectAuthenticationNotifications.SecurityTokenValidatedor Application_PostAuthenticateRequest呢?

我意识到这是将 MVC5System.Web与 OpenIdConnect 的 OWIN 中间件混合的副作用,而不是默认的 MVC5 项目身份验证中间件。

4

1 回答 1

1

如果您使用 ASP.NET 4.6 和 Katana 3.x,您应该能够从 ClaimsPrincipal.Current 访问您想要的声明。

请参阅下面的评论

于 2015-02-28T08:43:36.817 回答