【问题标题】:asp.net identity expire bearer token after 20 minasp.net 身份在 20 分钟后过期不记名令牌
【发布时间】:2015-03-27 03:36:32
【问题描述】:

我有一个网络服务,用户可以登录服务并提供不记名令牌。

在本地一切都很好,但在服务器(共享主机,windows 2012,iis 8.5)中,20 分钟后,令牌已过期!!!

我的 AccessTokenExpireTimeSpan 是:

AccessTokenExpireTimeSpan = TimeSpan.FromDays(900),

在我的第一个请求中,我延迟了大约 5 秒。什么问题?

【问题讨论】:

    标签: asp.net asp.net-identity-2 bearer-token


    【解决方案1】:

    我假设您在生产中拥有多个服务器。并且 ASP.NET Identity 使用服务器的机器密钥来生成令牌持有者。因此,在 20 分钟后,您已使用另一个机器密钥“重定向”到另一个服务器。

    一种解决方案是覆盖服务器的机器密钥。在 web.config 中设置机器密钥。所以所有服务器都有相同的机器密钥。

    <machineKey validationKey="534766AC57A2A2F6A71E6F0757A6DFF55526F7D30A467A5CDE102D0B50E0B58D613C12E27E7E778D137058E" decryptionKey="7059303602C4B0B3459A20F9CB631" decryption="Auto" validation="SHA1"/>
    


    如何生成和设置机器密钥:
    https://technet.microsoft.com/sv-se/library/cc755177%28v=ws.10%29.aspx http://docs.orchardproject.net/Documentation/Setting-up-a-machine-key

    解决方案 2 - 如果无法访问 IIS

    如果您不想修改 IIS 上的 machineKey 或无权访问它,您可以通过在 startup.cs 中的默认设置轻松地覆盖 ASP.NET 身份令牌提供程序文件。

    你可以在这里找到一个例子:https://github.com/eashi/Samples/blob/master/OAuthSample/OAuthSample/App_Start/Startup.Auth.cs

    【讨论】:

    • 您好,我无法访问 iis,您还有其他方法吗?
    • @Rikard 如果我们只有一个服务器怎么办??
    • @AminM 那么你不需要做任何事情。
    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2018-05-23
    • 2016-06-02
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多