在ASP.NET(2.0)應用程序中,我使用FormsAuthentication。(HttpContext.Current.User!= null)足以假定FormsAuthentication已經驗證用戶身份
在Global.asax/Application_AuthenticateRequest方法中,我檢查HttpContext.Current.User是否爲空。
這足以知道表單身份驗證cookie是否存在,票證未過期,並且總體而言,表單身份驗證機制已完成其驗證用戶的工作?
我需要這個,因爲我在那個應用程序中有一定的頁面,有時不需要認證來訪問(根據一些條件),我把它們放在web.config中的一個單獨的「location」指令中爲了排除他們從「全部捕獲」表單身份驗證。
I.e.我正在嘗試檢查Application_AuthenticateRequest是否需要保護在此「位置」中訪問的頁面,如果是,則知道用戶是否已經過身份驗證,或者我需要重定向到登錄。
編輯:正如答案建議,最有可能我會去IsAuthenticated。爲了讓我更好地把握它,這裏有2個獎金問題:)(請編輯其他答案添加這些,謝謝):
我可以假設,如果IsAuthenticated是真的,那麼HttpContext.Current。用戶將肯定包含經過身份驗證的用戶的用戶名?
如何強制使用HttpContext.Current.User中的「匿名用戶」,如果強制執行FormsAuthentication,並且只有幾個頁面被「location」指令排除在外?
當用戶的憑證是授權訪問資源的唯一決定性因素時,我更喜歡它。也許你可以將功能分成兩個不同的頁面,並允許ASP.NET來處理安全性? – Greg 2009-01-21 19:26:27