忘记用户的ASP.net Web管理工具
本文关键字:Web 管理工具 net ASP 用户 忘记 | 更新日期: 2023-09-27 18:10:53
嘿,伙计们,这是我遇到的一个奇怪的问题。我正在使用内置的ASP。. NET Web管理工具,允许用户登录到我为我的工作创建的页面。到目前为止,每天只有4个人登录这个工具。登录工作很好,但偶尔有人不能再登录系统。这种情况已经发生了三次了,所以我开始认为不是他们忘记密码了。
第一次发生这种情况后,我设置了密码恢复工具,但即使这样也不起作用。输入用户名只会显示"我们无法访问您的信息"。请再试一次。"错误,这很奇怪,因为当我进入后端,用户还在那里。所以,我必须删除用户并重新创建它,这对现在来说是有效的,因为我们不使用登录做任何事情,然后登录,没有信息链接到用户。如果我们扩大规模,这可能会成为未来的一个问题。
我想知道是否有人有类似的问题,或者知道问题可能是什么?我试着做了一些研究,但我找不到太多,或者我只是在错误的搜索条件下寻找。我使用的是Visual Studio 2010 Express,所有的登录表单都是默认设置的内置控件。
如果您还需要其他进一步的信息,请告诉我。
从网上。配置文件:
<identity impersonate="true"/>
<authentication mode="Forms">
<forms loginUrl="~/marcalendar/login.aspx"/>
</authentication>
<authorization>
<allow roles="admin" />
<allow roles="users" />
<deny users="?"/>
</authorization>
我认为这里最有可能的问题是你的用户被锁定(ASP成员的默认配置没有给出非常明确的反馈为什么登录尝试失败,只是它失败了),而不是aspnetdb不知怎么丢失/搞乱了用户信息-虽然我猜任何事情都是可能的:-)。
在网上查找。配置文件在项目的根级别。您应该看到如下内容:
<configuration>
...Some other stuff here...
<system.web>
...Some other stuff here...
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
</providers>
</membership>
<add name=.../>
是其中的重要部分。您将看到登录设置的一系列调优参数。这里重要的是
-
passwordAttemptWindow="10"
和 -
maxInvalidPasswordAttempts="5"
.
这意味着如果用户在10分钟内错误地输入密码5次,他们将被锁定(您可以使用MembershipUser以编程方式检查这一点)。IsLockedOut财产)。
如果这是问题所在,则需要实现MembershipUser。UnlockUser方法(如果您需要这部分的帮助,请告诉我)。然后你可以使用这样的代码:
MembershipUser usr = Membership.GetUser(userName); //userName is a string variable containing the username you're trying to unlock
usr.UnlockUser();
如果这不是问题,让我知道,我可以编辑/删除这个答案。