什么是快速方法我可以在几个ASP.NET MVC路由中添加简单身份验证,而无需实现整个成员资格提供程序jazz?

Scy*_*lon 2 c# asp.net-mvc

我为我的老板创建了一个演示网站,其中一个要求是我需要为他的3个管理员视图/路由添加一些简单的身份验证.

如果不实施整个会员提供商,我能做到的最简单,最快捷的方法是什么?老实说,我甚至不关心用户/通道是否在服务器端硬编码,我只是需要它,所以如果没有以某种方式进行身份验证,他们就无法访问这3个视图.

DM.*_*DM. 5

我会走这条路.

将其添加到您的web.config(如果需要,可以省略SHA1并使用纯文本密码):

<authentication mode="Forms">
  <forms loginUrl="~/admin" timeout="2880">
      <credentials passwordFormat="SHA1">
        <user name="admin" password="4f3fc98f8d95160377022c5011d781b9188c7d46"/>
      </credentials>
  </forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)

创建用户名和密码的简单视图,并在接收用户名和密码的操作方法中使用此...

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogOn(string username, string password)
{
    if (FormsAuthentication.Authenticate(username, password))
    {
        FormsAuthentication.SetAuthCookie(username, false);
        return RedirectToAction("Index", "Home");
    }
    else
    {
        ViewData["LastLoginFailed"] = true;
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

FormsAuthentication.Authenticate()会根据我们之前创建的凭据节点自动检查用户名和密码.如果匹配,则会创建一个"记住我"值为false的auth cookie,并将您重定向到家庭控制器的索引视图.如果不匹配,则返回登录页面,并将ViewData ["LastLoginFailed"]设置为true,以便在视图中处理.

PS - 现在你有一个简单的授权方法,不要忘记将[授权]过滤器放在你想要保护的动作或控制器上.