MSDN代碼示例描述:以下代碼示例使用IsAuthenticated屬性來確定當前請求是否已通過身份驗證。如果未通過身份驗證,則請求會重定向到其他頁面,用戶可以在其中將憑據輸入到Web應用程序中。這是在應用程序的默認頁面中使用的常用技術。Request.IsAuthenticated如何工作?
這是偉大的,但沒有細節或任何...
它到底是什麼檢查呢?我如何將其設置爲true?
加倍努力:我會在哪裏找到更詳細的文檔?
MSDN代碼示例描述:以下代碼示例使用IsAuthenticated屬性來確定當前請求是否已通過身份驗證。如果未通過身份驗證,則請求會重定向到其他頁面,用戶可以在其中將憑據輸入到Web應用程序中。這是在應用程序的默認頁面中使用的常用技術。Request.IsAuthenticated如何工作?
這是偉大的,但沒有細節或任何...
它到底是什麼檢查呢?我如何將其設置爲true?
加倍努力:我會在哪裏找到更詳細的文檔?
感謝Google,我發現@keyboardP的緩存版本指的是his answer。由於原始鏈接已損壞(2012-12-06),因此我將此答案/帖子張貼在此處作爲其他人的參考。
Original question的答案下面是指:
我有一個是給我一個適合基於表單的應用程序。我注意到,在 一個IsAuthenticated屬性爲True的位置,它現在是 錯誤,並且未按預期工作。我想知道如果我有一個 設置是無效的?由丹尼爾·肯特 constitues在記錄什麼
答案 -
誰能告訴我什麼設置IsAuthenticated屬性爲True:
Request.IsAuthenticated
不只是形式authentciation - 它是有效的 無論使用何種類型的身份驗證(Windows,Passport, 表單或我們自己的定製方案)
HttpRequest.IsAuthenticated
將在使用時r請求 已通過身份驗證。實質上,該屬性提供與Context.User.Identity.IsAuthenticated
相同的 信息。
在請求開始時,Context.User.Idenity
包含一個GenericIdentity
空用戶名。該對象的IsAuthenticated
屬性將 返回false
因此Request.IsAuthenticated
將爲false
。當 認證模塊處理Application_AuthenticateRequest
事件和 successfuly認證用戶它取代了GenericIdentity
在 Context.User.Identity
一個新的IIdentity
對象將從 其IsAuthenticated
財產返還true
。然後Request.IsAuthenticated
將返回true
。
在表單身份驗證的情況下,表單身份驗證模塊使用 身份驗證Cookie中包含的加密身份驗證憑證來驗證用戶身份。一旦完成此操作,它就會將Context.User.Identity
中的 GenericIdentity
替換爲FormsIdentity
對象,即 從其IsAuthenticated
屬性返回True
。
因此,設置IsAuthenticated
到true
是在記錄實際上是不同的。至於 傑夫說,在登錄窗體身份驗證時產生的 身份驗證票證和發送到客戶端的cookie的發生。 (RedirectFromLoginPage
或SetAuthCookie
)我們正在討論的與 IsAuthenticated
是每個頁面請求發生的身份驗證。 登錄發生在用戶輸入其憑據併發出 票證時,每次請求都會進行身份驗證。
丹尼爾肯特here有一個非常詳細的帖子。 (摘錄)
Request.IsAuthenticated是 不只是形式authentciation - 它 是有效的,無論是什麼類型 認證的正在使用(在Windows, 護照,表格或自己的自定義 方案)
當發出請求 的用戶已通過身份驗證時,HttpRequest.IsAuthenticated將爲 爲true。實質上, 此屬性提供了與 相同的 信息Context.User.Identity.IsAuthenticated。
鏈接不幸中斷。我通過Google找到了一個緩存版本,並在不同的答案中發佈了其內容,以便更好地進行格式化。 – Oliver 2012-12-06 16:31:24
這裏是谷歌的緩存答案的鏈接:https://webcache.googleusercontent.com/search?q=cache:t4JNfp8peQIJ:https://forums.asp.net/t/1416811.aspx%3FQuestion%2Babout%2Bmethods% 2Bto%2Bdetect%2Bif%2BA%2Buser%2之二%2Blogged%2Bin – tylerlindell 2016-11-16 22:39:34