自定义属性OnAuthorization中的FormsAuthentication.SetAuthCookie

时间:2009-11-21 06:07:44

标签: asp.net-mvc session forms-authentication

我正在尝试在asp.net mvc(C#)应用程序中的自定义属性的OnAuthorization中设置一个auth cookie。

当会话到期时(新会话),我再次设置一个auth cookie,直到用户退出为止。

我已使用以下内容设置auth cookie,

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

但是当我检查HttpContext.User.Identity.IsAuthenticated时,它会返回false。

如何在自定义属性的OnAuthorization中设置auth cookie?

2 个答案:

答案 0 :(得分:1)

设置身份验证Cookie后,您不会自动填写Context.User,您需要执行以下操作:

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

其中 strUserName 必须为非空且不为空,IsAuthenticated才能返回 true 。 在下一个请求中,Context.User应由FormsAuthenticationModule设置,您无需执行任何操作。

答案 1 :(得分:0)

我怀疑您在设置auth cookie后可能需要重定向到新页面,然后在新页面上检查IsAuthenticated。我不完全记得发生这种情况的顺序,但这让我想起了我遇到过的一个问题。