2015-06-28 29 views
3

我開發一個簡單的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> 

回答

1

檢查你的web.config文件,你必須添加<authentication mode="Forms"/><system.web>標籤

+0

這不是我的答案,我忘了檢查這個 – Jsonhelper

0

使用以下命令:

User.Identity.IsAuthenticated() 
+0

它的工作原理,但由於 – Jsonhelper

相關問題