我为我的老板创建了一个演示网站,其中一个要求是我需要向他的 3 个管理 View /路由添加一些简单的身份验证。
在不实现整个成员(member)服务提供商的情况下,最简单、最快捷的方法是什么?老实说,我什至不关心用户/密码是否在服务器端硬编码,我只需要它,这样他们就无法在没有以某种方式进行身份验证的情况下访问这 3 个 View 。
最佳答案
我会走这条路。
将此添加到您的 web.config(如果需要,可以省略 SHA1 并使用纯文本密码):
<authentication mode="Forms">
<forms loginUrl="~/admin" timeout="2880">
<credentials passwordFormat="SHA1">
<user name="admin" password="4f3fc98f8d95160377022c5011d781b9188c7d46"/>
</credentials>
</forms>
</authentication>
为用户名和密码创建一个简单的 View ,并在接收用户名和密码的操作方法中使用此...
[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();
}
}
FormsAuthentication.Authenticate() 会根据我们之前创建的凭据节点自动检查用户名和密码。如果匹配,它会创建您的身份验证 cookie,其“记住我”值为 false,并将您重定向到家庭 Controller 的索引 View 。如果不匹配,它将返回登录页面,并将 ViewData["LastLoginFailed"] 设置为 true,以便您可以在 View 中处理该问题。
PS - 既然您已经有了一种简单的授权方法,请不要忘记将 [Authorize] 过滤器放在您想要保护的操作或 Controller 上。
关于c# - 有什么快速方法可以将简单的身份验证添加到一些 ASP.NET MVC 路由,而无需实现整个成员(member)提供程序 jazz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691424/