关于ASP.NET MVC中的表单身份验证

时间:2011-12-17 19:12:15

标签: asp.net-mvc forms-authentication

这是我的配置部分:

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="43200" cookieless="UseCookies" slidingExpiration="true" />
</authentication>

现在在控制器中我有:

FormsService.SignIn(userName, true);
var temp = User.Identity.IsAuthenticated;

有时将临时值设置为false,有时设置为true。当用户是我自己时(在系统中有效)。无论我的aspx页面中有这个值,我都有:

<% if (Context.User.Identity.IsAuthenticated)
            { %>

这总是解析为真。那么我在控制器中做错了什么?我如何检查用户是否在控制器中进行了身份验证?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您必须在验证和设置身份验证Cookie后重定向。在随后的请求中,用户将被真正认证。

public ActionResult LogOn()
{
    FormsService.SignIn(userName, true);
    return RedirectToAction("authenticated");
}