ASP.NET登录控制拒绝存在的用户
问题描述:
我在ASP.NET 2.0 Login Control中遇到了一些问题。ASP.NET登录控制拒绝存在的用户
- 我已经用aspI.net regsql工具设置了一个数据库。
- 我检查了应用程序名称。它被设置为“/”。
应用程序可以访问SQL服务器。事实上,当我去检索密码时,它甚至会发给我密码。尽管如此,登录控件继续拒绝登录。
我已将此添加到web.config
:
<membership defaultProvider="AspNetSqlProvider">
<providers>
<clear/>
<add name="AspNetSqlProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
我增加了以下我的连接字符串:
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=IDC-4\EXCALIBUR;Initial Catalog=allied_nr;Integrated Security=True;Asynchronous Processing=True"/>
(请注意“删除名称”摆脱默认连接字符串中的App_Data目录。)
为什么不能登录控件验证用户身份?
答
这听起来像你是采用明文存储的密码,但SqlMembershipProvider的默认密码存储格式为“散列”。如果数据库存储为散列数据,则永远无法从数据库中检索用户的密码。
答
一个伟大的一组有关Memebership提供商的文章写于4个家伙从罗拉网站。检查出来,因为我认为这会有所帮助!
http://www.4guysfromrolla.com/articles/120705-1.aspx
从系列的第4部分:
“在会员系统中,有多个方案,通过该用户的凭据是无效的:
- 提供的用户名可能不存在于成员目录
- 用户名可能存在,但所提供的密码可能不正确
- 的用户名和密码可能是正确的,但:
- 用户可能还没有被批准
- 用户可能被锁定;如果用户试图与尝试指定数量的无效的密码登录会发生这种情况(五,默认情况下)
不幸的是,的ValidateUser(用户名,密码)方法只返回如果凭据假是无效的,并且不包括信息,至于为什么,准确地说,凭证无效”
你能显示你的web.config的相应部分? – jim 2010-04-16 19:20:24
你检查数据库,看看是否帐户被锁定或批准? – Zachary 2010-04-16 23:36:49