c# - FormsAuthentication 重定向到登录页面

标签 c# asp.net asp.net-mvc forms-authentication

我正在尝试在 ASP.NET MVC5 应用程序中实现 Simple FormsAuthentication ,如下所示:

Controller

public ViewResult login()
{
    return View();
}

[HttpPost]
public ViewResult login(Login login)
{            
    if (ModelState.IsValid)
    {
        if (FormsAuthentication.Authenticate(login.username, login.password))
        {
            FormsAuthentication.RedirectFromLoginPage(login.username, false);                 
        }
        else
        {
            Response.Write("Invalid username or password. Try again");
            return View();
        }
     }
     return View("Index");            
}

Web.Config

<appSettings>
    <add key="owin:AutomaticAppStartup" value="false"/>
</appSettings>
<system.web>    
    <authentication mode="Forms">
          <forms
              name="PC"
              loginUrl="~/Home/login"
              timeout="2">
          <credentials>
              <user name="admin" password="admin1"/>
          </credentials>
  </forms>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>
</system.web>

现在,当我提供 Web.Config 文件中提到的正确凭据时,PostHttp login ViewResultElse 语句部分中的错误消息将执行并写入消息 用户名或密码无效。再试一次 并再次重定向到登录页面。浏览器中显示的 URL 为:

http://payroll.net:81/Home/login?ReturnUrl=%2f

知道为什么 FormsAuthentication 在收到正确的凭据后没有重定向到“索引” View 吗?

最佳答案

您正在为其提供未散列的密码,默认散列算法是 Sha1 尝试散列您的密码并放入散列字符串。 另外,如果您不想使用加密,您可以使用以下方式声明:

 <credentials passwordFormat = "Clear">   
     <user name="UserName" 
     password="SimplePass"/>
  </credentials>   

关于c# - FormsAuthentication 重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529349/

相关文章:

c# - SQLite 数据库连接有哪些附加配置信息?

javascript - 我可以用 jquery 触发 Html.ValidationMessageFor 并让它显示我在 JQuery 中定义的一些字符串吗?

asp.net-mvc - 如何在 ASP.NET MVC 中对 ActionFilter 进行单元测试?

c# - 在 Application_End 中处理 Windsor 与在 HttpApplication.Dispose 中处理有何不同?

c# - httputility 在框架 3.5 的当前上下文中不存在

c# - 使用 FindControl() 查找控件

c# - 'User.IsInRole' 中的多个角色

javascript - Jquery,获取用户控件内的标签值

c# - 将 UTC 转换为特定时区

asp.net - 在同一组产品中混合使用 ASP.Net MVC 开发和 ASP.net Web 表单开发是否明智?