1

我在使用基本身份验证的 ASP.NET Web API 中使用 Thinktecture IdentityModel。一切正常,我可以向服务器请求一个过期的新令牌。我在 AppHarbor 中托管这个应用程序。

问题是 AppHarbor 会定期重置池,因为如果应用程序有一段时间没有被使用,它就会进入“空闲”状态。

这使得我的应用程序使用 IdentityModel 颁发的令牌在池重置后不再有效。

我知道有一些技巧可以让 AppHarbor 保持活力。我不是在寻找这种解决方案。是否有任何方法可以使用在池重置后有效的 IdentityModel 创建令牌?这是一个安全问题吗?

这是我设置身份验证的代码:

 var authentication = new AuthenticationConfiguration
 {
     EnableSessionToken = true,
     RequireSsl = false,
     SessionToken = new SessionTokenConfiguration()
     {
        DefaultTokenLifetime = System.TimeSpan.FromDays(1),
        EndpointAddress = "/Authenticate"
     }
 };

 authentication.AddBasicAuthentication(authService.Authenticate, authService.GetRoles);
 config.MessageHandlers.Add(new AuthenticationHandler(authentication));
4

1 回答 1

1

创建 SessionTokenConfiguration 时,需要为 SigningKey 属性分配一致的值。这是一个签名密钥,因此它对于您的应用程序应该是唯一的,并且您应该将其视为秘密。

于 2013-09-23T17:04:08.893 回答