c# - 有什么快速方法可以将简单的身份验证添加到一些 ASP.NET MVC 路由,而无需实现整个成员(member)提供程序 jazz?

标签 c# asp.net-mvc

我为我的老板创建了一个演示网站,其中一个要求是我需要向他的 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/

相关文章:

asp.net-mvc - 如何在不重复代码的情况下实现业务和 View 验证?

c# - 使用 ReSharper 在 C# 中的大括号后缩进

c# - Entity Framework 5 线程敏捷性

c# - 如何获取PC的本地IP?

asp.net-mvc - 在 ASP.NET MVC 中避免使用路由规则的 Controller

javascript - 如何模仿 ASP.NET AjaxOptions 委托(delegate)函数?

asp.net-mvc - .NET MVC 3 Code First 数据库排序规则

c# - for循环字符串的问题

c# - Entity Framework : Null Reference Exception thrown when adding migration in package manager console VS 2012

c# - 即时通讯通知