我为我的老板创建了一个演示网站,其中一个要求是我需要为他的3个管理员视图/路由添加一些简单的身份验证.
如果不实施整个会员提供商,我能做到的最简单,最快捷的方法是什么?老实说,我甚至不关心用户/通道是否在服务器端硬编码,我只是需要它,所以如果没有以某种方式进行身份验证,他们就无法访问这3个视图.
我会走这条路.
将其添加到您的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 - 现在你有一个简单的授权方法,不要忘记将[授权]过滤器放在你想要保护的动作或控制器上.
| 归档时间: |
|
| 查看次数: |
1676 次 |
| 最近记录: |