2009-11-21 22 views
2

我想在我的自定義屬性在asp.net mvc(C#)應用程序的OnAuthorization中設置auth cookie。FormsAuthentication.SetAuthCookie OnAuthorization的自定義屬性

當會話到期(新會話)時,我再次設置了一個auth cookie,以使其可用,直到用戶註銷。

我已經使用以下設置身份驗證cookie的,

//set forms auth cookie 
FormsAuthentication.SetAuthCookie(strUserName, true); 

但是當我檢查HttpContext.User.Identity.IsAuthenticated,返回false。

如何在自定義屬性的OnAuthorization中設置auth cookie?

回答

1

設置身份驗證的cookie後,您將不會自動得到填補在Context.User,你需要做的是這樣的:

Context.User = new GenericPrincipal (new GenericIdentity (strUserName, "Forms"), null); 

其中strUserName中必須非空,不爲空IsAuthenticated返回true。 在下一個請求中,Context.User應該由FormsAuthenticationModule設置,您不必做任何事情。

+0

我用它,它適用於當前請求。但是當下一頁/其他請求。該請求未通過身份驗證。你能幫我在這裏嗎? – 2015-05-23 07:15:29

0

我懷疑你可能需要重新定向到一個新的頁面後,您設置auth cookie,然後在新的頁面上檢查IsAuthenticated。我不完全記得發生這種情況的順序,但這讓我想起了我遇到的一個問題。