表单身份验证无效

时间:2014-12-31 09:22:01

标签: asp.net asp.net-mvc

我正在ASP.NET MVC中创建一个站点。不幸的是,FormsAuthentication.SetAuthCookie(login.Username, login.RememberMe);似乎无法正常运作。

修改:这是我正在使用的代码:

[AllowAnonymous]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel login, string returnUrl) {
     if (ModelState.IsValid) {
        if (Membership.ValidateUser(model.Username, model.Password)) {
            FormsAuthentication.SetAuthCookie(model.Username, model.RememberMe);
            if (Url.IsLocalUrl(returnUrl)) {
               return Redirect(returnUrl);
            } else {
               return RedirectToAction("Index", "Home");
            }
          }
     }
   ModelState.AddModelError("", "Username or password are incorrect!");
   return View(login);
}

我已经在我的配置中将Forms设置为Forms:

<authentication mode="Forms">
  <forms loginUrl="/Account/Login"/>
</authentication>

当我尝试注销时,它总是将我重定向到登录,因为服务器认为我没有登录。 我不明白我做错了什么。有人能说出来吗?我已经做了一些研究,但没有答案回答了我的问题/问题。

我在部分代码中也有以下代码,但也无效。

@if (Request.IsAuthenticated) 
{
    //show logout button
} 
else 
{ 
    //show login button

}

1 个答案:

答案 0 :(得分:0)

我已经开始工作了,我只需要将以下标签添加到web.config:

  <system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
    </modules>
  </system.webServer>

<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false"/>