我有一个ASP.NET MVC应用程序,它只能由登录的用户访问。
我们正在实现PingAccess和PingFederate,它们拦截应用程序的流量,并强制用户在流量到达应用程序之前进行登录。
一旦通过身份验证,PingAccess就会设置一个包含JWT令牌的cookie,我可以在MVC控制器中读取它并抽象声明(示例如下),但我需要能够设置User.Identity对象并确保IsAuthenticated为真,这样我就可以在所有控制器上使用标准的Authorize属性。
var cookie = this.Request.Cookies.Get("PA.mycookie");
var jwtTokenString = cookie.Value;
var jwtToken = new JwtSecurityToken(jwtTokenString);
var claims = jwtToken.Claims;
有谁能给我指个方向吗?
非常感谢
发布于 2018-06-07 03:54:01
如果使用User.Identity对象和IsAuthenticated属性的目的只是为了确保Authorize属性有效,那么通过jwt令牌实现的方法需要通过ConfigureOAuthTokenConsumption在Startup.cs中进行一些设置。这篇文章中的第二个答案有一些示例代码,它们可能会让你走上正轨:How to use JWT in MVC application for authentication and authorization?。
https://stackoverflow.com/questions/50723092
复制相似问题