簡體   English   中英

在WINhost上沒有記住ASP.NET SPA WEBAPI BEARER TOKEN

[英]ASP.NET SPA WEBAPI BEARER TOKEN not being remembered on winhost

我有這個使用BEARER TOKEN身份驗證的ASP.NET Web SPA web api項目。

我已將它部署到幾個不同的地方,本地和蔚藍雲,我沒有看到這個問題。

由於預算原因,我決定從托管公司(winhost)購買。 當站點僅從此主機運行時,我只看到以下問題。

問題是在您登錄站點並閑置X分鍾后,下一個請求失敗,直到您刷新並登錄。 (我得到401(未經授權))

令牌的到期似乎只有10-20分鍾,而不是2周(默認情況下,天藍色和我的視覺工作室本地)。 我收到時還打印了令牌,為期2周。

我期待的行為是要緩存的承載令牌(我已通過記錄標頭確認),然后與下一個請求一起發送,然后授權並返回結果。

這個新主機有一些默認的IIS設置,我認為它打破了它。 我已經不得不更改一些默認設置,例如通過IIS管理器手動關閉基本身份驗證。

有任何想法嗎?

我能找到的唯一符合我所看到的描述的是這個鏈接。 ASP.NET Web API授權令牌提前到期

我想對那篇文章發表評論,但我沒有足夠高的聲望點。 出於方便,我在下面復制了這篇文章。

我已經實現安全我的網絡API(個人賬戶)的討論在這里

我在godaddy(共享主機)上托管了該網站,並且其工作正常。 當我使用url“domain.com/token”請求令牌時,我會獲得有效期為15天的令牌。 我在“StartupAuth.cs”中設置了這個

AccessTokenExpireTimeSpan = TimeSpan.FromDays(15)

例如:

{
  "access_token":"qwertyuiop.....",
  "token_type":"bearer",
  "expires_in":1209599, 
  "userName":"user@example.com",
  ".issued":"Wed, 11 Feb 2015 01:00:00 GMT",
  ".expires":"Thu, 26 Feb 2015 01:00:00 GMT"
}

(我將值放在上面的代碼中,但是您可以了解“.expires”字段。

獲取令牌后5分鍾,當我嘗試通過傳遞授權訪問“get”或“post”或我的API中的任何方法時:標頭中的bearer token為:

Authorization: Bearer qwertyuiop.....

我收到此錯誤:

{"Message":"Authorization has been denied for this request."}

雖然它只是5分鍾而且令牌應該持續15天,但它會在5分鍾內到期。 當我在5分鍾的間隔內請求任何方法“獲取”/“發布”時,我在JSON中得到了我的數據的正確響應。 簡而言之,授權成功。

我通過Fiddler,Chrome的REST插件以及使用API​​的移動應用程序進行測試,重復了這種行為。

我有會話的web.config值如下(我認為它的相關)

<sessionState timeout="180" />

請注意,不使用表單身份驗證,因此不需要在web.config中的該部分超時。

知道發生了什么事嗎? 此超時導致使用API​​的移動應用程序的用戶不時地重新登錄。 任何幫助,將不勝感激。

謝謝。

在IIS中,可以在應用程序級別設置機器密鑰,每次應用程序池回收時都會生成新的機器密鑰,因此您需要一個新的令牌

這里回答

添加到web.config不受應用程序池回收的影響

<system.web>
   <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>

請在此處閱讀如何生成https://support.microsoft.com/en-us/kb/312906

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM