登錄當用戶登錄到我的網站,當用戶驗證我有一個覆蓋ValidateUser
和驗證用戶具有足夠的權限等淨會員提供商,通過永久性Cookie
然而自定義成員資格提供,當通過使用RememberMeSet
的默認表單身份驗證實現'記住我'功能時,我還想要驗證第一個請求上的用戶。
當用戶使用持久cookie登錄時,是否有一些鉤子可以附加到該觸發器上?
登錄當用戶登錄到我的網站,當用戶驗證我有一個覆蓋ValidateUser
和驗證用戶具有足夠的權限等淨會員提供商,通過永久性Cookie
然而自定義成員資格提供,當通過使用RememberMeSet
的默認表單身份驗證實現'記住我'功能時,我還想要驗證第一個請求上的用戶。
當用戶使用持久cookie登錄時,是否有一些鉤子可以附加到該觸發器上?
解決方法:
UserIsVerified
什麼true
通過默認loginpage登錄時(或通過對等單點登錄)Application_PreRequestHandlerExecute
在global.asax中驗證UserIsVerified
支柱是否已設置,如果沒有:執行相應檢查爲什麼Application_PreRequestHandlerExecute?
On PreRequest會話和配置文件都可用。 .Net已經解釋了持久性cookie,因此你可能想要的每個信息都在那裏。當用戶檢查失敗時,您也可以執行重定向,因爲我們在請求週期中。它也發生在任何用戶代碼被執行之前,所以afaik在這裏執行以防止類似的行爲是相當安全的。
如果處理程序中的身份驗證失敗,我重定向到註銷頁面並讓.Net處理所有其他事情。
我想你要找的是HttpModule中的AuthenticateRequest事件。在這個事件處理程序中,您可以檢查cookie並驗證憑據,然後設置HttpContext.Current.User來授權用戶。
您只需撥打Membership.GetUser()
即可返回當前登錄用戶的MembershipUser
實例。如果您的用戶上次使用「記住我」登錄,導致持久性驗證。客戶端上的Cookie,您的MembershipProvider會自動告訴您用戶是否已從[持久cookie]登錄。 從持久性驗證cookie驗證用戶不需要額外的努力。
您可以工作出你的額外鉤上由該方法返回Membership.GetUser()
例如MembershipUser
和檢查,如果他授權執行任務。如果用戶未被發現登錄,該方法將簡單地返回null
。
不是。我不想自己做任何cookie,因爲.Net可以處理所有這些。 – 2010-06-30 09:37:38