FormsAuthentication with Razor not working

依然范特西╮ 提交于 2019-12-06 15:51:22

FormsAuthentication does work with ASP.NET MVC, but try authenticating on the server. Here's an example:

Controller:

namespace ABMCEditAndReports.Controllers
{
    public class LoginController : Controller
    {
        //
        // GET: /Login/

        public ActionResult Index(string returnUrl = null)
        {
            this.ViewBag.ReturnUrl = returnUrl;
            return View("LoginPage");
        }

        public ActionResult Index(LogInViewModel model, string returnUrl)
        {
            if (this.ModelState.IsValid && Membership.ValidateUser(model.UserName, model.Password))
            {
                FormsAuthentication.SetAuthCookie(model.UserName, false);
                return this.Redirect(returnUrl);
            }

            this.ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return this.View(model);
        }
    }
}

Model:

namespace ABMCEditAndReports.Models
{
    public class LogInViewModel
    {
        [Display(Name = "User Name")]
        public string UserName { get; set; }

        [Display(Name = "Password")]
        [DataType(DataType.Password)]
        public string Password { get; set; }
    }
}

View:

@model ABMCEditAndReports.Models.LogInViewModel
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
{
    @Html.ValidationSummary()
    <h2>Please sign in</h2>
    <div>
      @Html.DisplayNameFor(model => model.UserName)
      @Html.EditorFor(model => model.UserName)
    </div>
    <div>
      @Html.DisplayNameFor(model => model.Password)
      @Html.EditorFor(model => model.Password)
    </div>
    <button type="submit">Sign in</button>
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!