2015-03-19 104 views
2

我有一個Web服務,用戶可以登錄到服務並給予持票人令牌。asp.net身份過期20分鐘後持票人令牌

在本地一切都很好,但在服務器(共享主機,windows 2012,iis 8.5)20分鐘後,令牌已過期!!!

我AccessTokenExpireTimeSpan是:

AccessTokenExpireTimeSpan = TimeSpan.FromDays(900), 

也在我的第一請求,我得到約5秒的延遲。什麼是問題?

回答

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或無權訪問它,您可以通過ovveriding默認設置startup.cs文件。

這樣一個例子,你可以在這裏找到:https://github.com/eashi/Samples/blob/master/OAuthSample/OAuthSample/App_Start/Startup.Auth.cs

+0

嗨,我不訪問到IIS,你有另一種方式? – Moein 2015-03-26 19:23:55

+0

看看我的更新 – Rikard 2015-03-26 19:36:43

+0

@Rikard如果我們有單服務器? – AminM 2017-02-07 10:44:22

相關問題