我有一個導航控件,僅顯示給主頁上已通過身份驗證的用戶。這可以通過測試用戶名+ [空格]導致login.aspx重定向,但Identity.IsAuthenticated爲TRUE
System.Web.HttpContext.Current.User.Identity.IsAuthenticated == true
我使用窗體身份驗證與Active Directory的成員和登錄控件中顯示。
如果我使用我的用戶名登錄,並在最後加上一個空格......'用戶名'則頁面被302'd改爲returnurl,然後直接返回到login.aspx ......但奇怪的是當加載登錄.aspx頁面第二次,IsAuthenticated保持爲真。
這意味着我們的登錄頁面顯示不正確的導航...
所以現在我重定向到即使IsAuthenticated是真正的登錄界面,任何人都可以解釋爲什麼會這樣?
顯然用戶名中的空格是錯誤的,但我想確保用戶不會遇到這種情況。
此代碼在其他任何情況下均可正常工作。
我使用一個ASP.NET登錄控件,開箱即用......我可以應用一些javascript來修剪它, – Craig
但是沒有javascript的用戶仍然可以解決這個問題...我更喜歡服務器端解決方案... – Craig
I我正在使用MVC,因此它在這裏有點不同,但是在可以更改身份驗證之前沒有服務器端代碼? – ChrFin