我通过以下过程成功地运行并返回JWT令牌
JwtSecurityTokenHandler
和TokenValidationParameters
并致电tokenHandler.ValidateToken
以获取ClaimsPrincipal 从这里我获得了授权,但我不确定将令牌保留给进一步请求的最佳方法。我尝试使用
var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromHour(8));
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
但我没有注册SessionAuthenticationModule
。我尝试使用“身份和访问”向导来实现此功能,但它对配置进行了许多更改,并尝试为被动身份验证进行设置。
我可以使用传统的FormsAuthentication cookie(.aspnetAuth),但我记得有人讨论过.FedAuth cookie的一个优点是,如果它的大小太大,它会被自然地分成几个cookie。
我很难找到一篇能为我完成图片的文章。我需要承载令牌来进一步访问堆栈中的各种API。我已经为SSO /被动身份验证提供了这方面的示例,因为大部分工作都是为您完成的。我只是不确定使用资源所有者密码流时使用的最佳模式。
所以
答案 0 :(得分:0)
尝试查看此问题:WIF Security Token Caching。
我相信这段代码可能会
var sessionSecurityToken = new SessionSecurityToken(principal, TimeSpan.FromHours(Convert.ToInt32(System.Web.Configuration.WebConfigurationManager.AppSettings["SessionSecurityTokenLifeTime"])))
{
IsPersistent = true, // Make persistent
IsReferenceMode = true // Cache on server
};
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken);