我開發一個簡單的asp.Net MVC應用程序這就需要FormsAuthentication,Request.IsAuthenticated不會改變FormsAuthentication視圖在ASP.NET MVC
型號
public class Member
{
[Required]
[Display(Name = "Username")]
public string Username { set; get; }
[Required]
[Display(Name = "Password")]
public string Password { set; get; }
[Display(Name = "Remember Me?")]
public bool RemeberMe { set; get; }
public bool IsValid(string username,string password)
{
return (new TestdbEntities()).Members.Any(m => m.Username == username && m.Password == password);
}
}
控制器
[HttpGet]
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(Models.Member member)
{
if (ModelState.IsValid)
{
if (member.IsValid(member.Username, member.Password))
{
FormsAuthentication.SetAuthCookie(member.Username,member.RemeberMe);
return RedirectToAction("Index","Home");
}
else
{
ModelState.AddModelError("","Invalid Username/Passowrd!");
}
}
return View(member);
}
個
查看
問題occurres看來,這是我希望改爲註銷鏈接時,用戶成功驗證的登錄鏈接,但即使我追查,登錄成功,但Request.IsAuthenticated
是假的。
<body>
<ul class="nav nav-pills">
<li>
@Html.ActionLink("Home", "Index", "Home")
</li>
<li>
@if (Request.IsAuthenticated)
{
<label>Welcome </label> @Html.Encode(User.Identity.Name)
@Html.ActionLink("Signout", "Logout", "Membership")
@Html.Label(User.Identity.Name.ToString())
}
else
{
@Html.ActionLink("Login", "Login", "Membership")
}
</li>
</ul>
<div>
@RenderBody()
</div>
</body>
這不是我的答案,我忘了檢查這個 – Jsonhelper