我有一個Web服務,用戶可以登錄到服務並給予持票人令牌。asp.net身份過期20分鐘後持票人令牌
在本地一切都很好,但在服務器(共享主機,windows 2012,iis 8.5)20分鐘後,令牌已過期!!!
我AccessTokenExpireTimeSpan是:
AccessTokenExpireTimeSpan = TimeSpan.FromDays(900),
也在我的第一請求,我得到約5秒的延遲。什麼是問題?
我有一個Web服務,用戶可以登錄到服務並給予持票人令牌。asp.net身份過期20分鐘後持票人令牌
在本地一切都很好,但在服務器(共享主機,windows 2012,iis 8.5)20分鐘後,令牌已過期!!!
我AccessTokenExpireTimeSpan是:
AccessTokenExpireTimeSpan = TimeSpan.FromDays(900),
也在我的第一請求,我得到約5秒的延遲。什麼是問題?
我認爲你在生產中有多個服務器。而且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或無權訪問它,您可以通過ovveriding默認設置startup.cs文件。
這樣一個例子,你可以在這裏找到:https://github.com/eashi/Samples/blob/master/OAuthSample/OAuthSample/App_Start/Startup.Auth.cs
嗨,我不訪問到IIS,你有另一種方式? – Moein 2015-03-26 19:23:55
看看我的更新 – Rikard 2015-03-26 19:36:43
@Rikard如果我們有單服務器? – AminM 2017-02-07 10:44:22