我們有一個用於註冊的電子郵件確認頁面,可以使用一次性鏈接來激活該帳戶。在Site.Master中使用LogonUserControl的Asp.net Mvc FormsAuth
該網站的性質是這樣的,我們可以讓這個鏈接自動登錄用戶。這項要求正在審查中(應我的要求!)。
以下情況被證明是一個有點混亂:
- 用戶按照他們的電子郵件
- 確認控制器上這土地上的確認鏈接。
所有的事情都是好的,該用戶將自動登錄,使用:
FormsAuth.SignIn(user.UserName,false);
從控制器
視圖返回視圖使用其中包含部分母版頁視圖是LogonUserControl.ascx組件。 內成分,有以下代碼(說到直出asp.net的MVC項目模板):
if (Request.IsAuthenticated) { /*foo*/ }
當頁面呈現,Request.IsAuthenticated
是儘管在控制器簽約用戶返回false 。
我想知道爲什麼這可能是。在調用FormsAuth.SignIn
方法或者使用請求對象進行此檢查時,主服務器是否已經寫出錯誤,因爲在收到請求時,它確實沒有進行身份驗證?
編輯:它顯示默認LogOn控制器使用重定向而不是返回視圖。這當然會解決問題,但是我對上述場景爲什麼不起作用感興趣。
很好的解釋,一段時間跑到這裏,從來沒有理解爲什麼,現在我做。 – mxmissile 2009-09-08 20:29:37