asp.net-mvc - Request.IsAuthenticated 不会更改 ASP.NET MVC 中 FormsAuthentication 中的 View

标签 asp.net-mvc forms-authentication

我正在开发一个简单的 asp.Net MVC 应用程序,它需要 FormsAuthentication,

模型

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);
    }
}

Controller

[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);
}

查看

问题发生在 View 中,当用户成功通过身份验证时,我希望登录链接更改为注销链接,但即使我跟踪,登录成功但 Request.IsAuthenticated 为 false。

<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> 

最佳答案

检查您的 web.config 文件,您必须添加 <authentication mode="Forms"/><system.web> 下标签

关于asp.net-mvc - Request.IsAuthenticated 不会更改 ASP.NET MVC 中 FormsAuthentication 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097601/

相关文章:

asp.net-mvc - 使用 ASP.NET MVC 3 本地化非数据注释错误的最佳方法是什么?

jquery - MVC WebGrid 在其表格之前呈现 AJaX 脚本。如何在脚本部分强制生成脚本

asp.net - MembershipUser 和 IPrincipal 对象之间的关系

asp.net - 使用 Web.Config 进行 Asp.net 表单例份验证登录后重定向不起作用

asp.net - 身份验证不适用于发布

c# - .NET : Changing from Windows Authentication to Forms Authentication against AD

jquery - 客户端条件验证 RequiredIf 属性

css - 使用 Twitter Bootstrap 在输入文本框的右侧放置并修复一个图标

请求的 ASP.NET 表单例份验证失败。原因: The ticket supplied has expired

c# - asp.net MVC 中的 lambda 表达式