在我的ASP MVC項目中,我實現了OWIN CookieAuthentication。除未經授權的請求外,所有程序都運行正常。 例如,考慮流動:Owin未經授權的請求未註銷用戶
- 用戶登錄
- 用戶點擊了該用戶無權訪問的端點。
通過限制:
[Authorize(Roles = "SomeRoleUserDontHaAssigned")]
public ActionResult SomeAction()...
發生這種情況時用戶被重定向到帳戶/登錄路徑(這是確定),但他沒有得到註銷(這是我所期望的)。
這是預期的行爲,所以我應該實現我自己的AuthorizeAttribute,我應該手動刪除cookie(或調用Account/SignOut)?或者我錯過了什麼?
你爲什麼期望這樣的事情?作爲用戶,如果我每次遇到無法訪問的資源時都必須重新登錄,我會感到有點生氣。你可以通過自定義的AuthorizeAttribute來做到這一點,但是你應該怎麼做? –
我明白你的觀點。我應該詳細說明一點:從用戶體驗角度來看,我完全同意你的看法。我真正想說的是:如果它已經重定向到登錄頁面,那麼(並且只有這樣)我纔會期望首先註銷用戶,因爲登錄已登錄用戶的是什麼?這不是很奇怪嗎?另一方面,完全正確的解決方案當然是重定向到一些自定義的「訪問被拒絕」頁面。順便說一句,那是在哪裏設置的? –
我無法完全理解您的問題,您如何期望用戶在登錄受限制的頁面時應該註銷?用戶登錄的唯一方式是在Cookie死亡或者通過身份驗證管理器(authenticationManager.SignOut) – SaadK