2015-06-28 2 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

Смежные вопросы