ASP.NET设置用户身份和IsAuthenticated = true

时间:2018-06-06 14:36:26

标签: c# asp.net-mvc asp.net-identity identity authorize-attribute

我有一个ASP.NET MVC应用程序,只能由登录的用户访问。

我们正在实施PingAccess和PingFederate,它拦截我们应用程序的流量并强制用户在它甚至到达我们的应用程序之前登录。

一旦经过身份验证,PingAccess会设置一个包含JWT令牌的cookie,我可以在MVC控制器中读取它并抽象出声明(下面的示例),但我需要能够设置User.Identity对象并确保IsAuthenticated为true所以我可以在所有控制器上使用标准的Authorize属性。

var cookie = this.Request.Cookies.Get("PA.mycookie");
var jwtTokenString = cookie.Value;
var jwtToken = new JwtSecurityToken(jwtTokenString);
var claims = jwtToken.Claims;

有人能指出我正确的方向吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

如果追踪User.Identity对象和IsAuthenticated属性的目的只是为了确保您的Authorize属性有效,那么通过jwt令牌执行此操作的方法需要通过ConfigureOAuthTokenConsumption在Startup.cs中进行一些设置。这篇文章的第二个答案有一些示例代码,可以让您走上正确的轨道:How to use JWT in MVC application for authentication and authorization?