微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过web.config进行身份验证不能在ASP.net 3.5中进行身份验证

这是一件非常简单的事情,我根本无法解决为什么它不工作.

我试图为ASP.net 3.5应用程序设置一些非常快速的身份验证,但将用户名密码存储在web.config文件中(我知道这不是很安全,但它是一个内部应用程序,我不断被要求添加删除登录,因此这是最快的方法).

所以,相关的配置部分看起来像这样:

<authentication mode="Forms">
   <forms loginUrl="~/login.aspx">
    <credentials>
     <user name="user" password="password" />
     <user name="user2" password="password2" />
    </credentials>
   </forms>
  </authentication>

  <authorization>
    <deny users="?"/>
  </authorization>

而在登录页面中,代码如下所示:

string username = tbUsername.Text;
string password = tbPassword.Text;

if (FormsAuthentication.Authenticate(username,password))
    FormsAuthentication.RedirectFromLoginPage(username,false);

但是,FormsAuthentication.Authenticate(username,password)总是返回false.我不知道为什么.

我甚至尝试使用Membership.ValidateUser,但只是在本地数据库添加到App_Data文件夹.

有没有什么真正的基础我忘记了这里或这不工作在.net 3.5?

解决方法

我不知道在.NET 3.5中是否有变化,但是< credentials>元素有一个属性passwordFormat,它定义web.config中密码的格式.从 MSDN documentation for .NET 3.5开始,认格式为SHA1.

如果您在web.config中使用明文用户名和密码,则应该使用:

...
<credentials passwordFormat="Clear">
...

事件虽然这是一个内部应用程序,我仍然建议至少哈希密码,而不是将其留在明文.

原文地址:https://www.jb51.cc/html/229498.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐