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

前端之家收集整理的这篇文章主要介绍了通过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">
...

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

猜你在找的HTML相关文章