2010-06-02 23 views
0

我使用FormsAuthentication.RedirectFromLoginPage(userName.Trim(), false);來設置稍後引用的User.Identity.Name字段。當我執行這一行時,User.Identity對象根本不會更新;它包含之前設置的任何內容。我在網上看到的所有文檔都表示這應該用正確的名稱更新我的User.Identity對象,但我沒有看到發生這種情況。RedirectFromLoginPage()不更新User.Identity.Name

我有web配置設置是否恰當下面幾行:

<authentication mode="Forms"> 
    <forms name="formsauth" loginUrl="Login.aspx" protection="All" timeout="60"> 
    </forms> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

我是比較新的這個東西,所以任何幫助表示讚賞。謝謝!

回答

1

它將在下一個請求中更新,但不會在下一個請求後的下一行中更新。 RedirectFromLoginPage會在客戶端瀏覽器中設置一個驗證Cookie,該驗證cookie將在下次客戶端請求時讀取,您將看到更新的User.Identity.Name屬性。在同一個HTTP請求中更新此屬性毫無意義,因爲您已經知道用戶在調用方法時通過了身份驗證。

+0

謝謝Darin!後來我檢查了同一個請求,以檢查會話用戶名是否與User.Identity.Name匹配,但我不確定它爲什麼在那裏(我沒有寫它)。看起來像我應該能夠把它拿出來。再次感謝! – Kevin 2010-06-02 20:31:34