我正在尝试在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?
答案 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。我不完全记得发生这种情况的顺序,但这让我想起了我遇到过的一个问题。