您能否告訴我爲什麼FormsAuthentication.SetAuthCookie(user.Name, false);
不會導致Request.IsAuthenticated
爲真?Request.IsAuthenticated始終爲假
這裏是我的代碼:
[HttpPost]
public ActionResult LogIn(karcioszki.Models.UserLoginModel user)
{
if (ModelState.IsValid)
{
if (IsValid(user.Name, user.Password))
{
FormsAuthentication.SetAuthCookie(user.Name, false);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Login or password is incorrect");
}
}
return View(user);
}
和if語句:
@if (Request.IsAuthenticated)
{
<a href="@Href("~/")" class="active">Home</a>
<a href="@Href("~/Cards")">Cards</a>
@Html.ActionLink("Log out", "Logout", "User")
@Html.Encode(User.Identity.Name)
}
另外,請告訴我,如何使它工作?
編輯: 我在web.config(都)中添加了身份驗證,但它仍然無法正常工作。
<system.web>
<httpRuntime targetFramework="4.5" />
<compilation debug="true" targetFramework="4.5" />
<authentication mode="Windows"/>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="System.Web.Optimization" />
</namespaces>
</pages>
我應該使用Windows或其他模式?
凡(在什麼視圖)是這個'if'聲明在什麼位置? – Andrei
您是否檢查過ModelSate.IsValid是否爲真?您發送到該操作的模型可能存在問題。 – James
檢查你的web.config中的'authentication'元素的一切正常嗎?你可以發佈嗎? – jbl