我使用的是SqlMembershipProvider的,有一个地方aspnet_Membership_UpdateUserInfo被调用两次为单个失败的登录问题,叫了两声。这意味着只有两次尝试后用户才会被锁定,而不是我配置的3个。aspnet_Membership_UpdateUserInfo单一登录失败
不幸的是,我不能简单地将登录尝试次数计数到更高的数字,因为问题似乎只发生在IE用户。 Firefox和Chrome不会出现同样的问题。
我使用的配置是:
<membership defaultProvider="AcademyWebProvider" userIsOnlineTimeWindow="3">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="3"
maxInvalidPasswordAttempts="3"
passwordAttemptWindow="15"
applicationName="AcademyPro"
connectionStringName="SqlServer"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
name="AcademyWebProvider"
type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>
UPDATE
周围挖了一点,看着小提琴手痕迹IE7(IE7正确的,而不是IE 8可计算模式)和IE8提交形成两次。我还在表单标签中添加了onsubmit="alert('Ping!');"
,警告框显示两次,所以问题出在JavaScript上。
使用fiddler它看起来像IE8发送所有登录请求两次。无论是有效的还是无效的,这让我想知道还有什么发送两次。 – ilivewithian 2009-08-27 10:02:33
@ilivewithian您是否在IE7中尝试过,看它是否发生在IE8中,或者是特定于IE8的,如果是,那么Lookahead Downloader可能是一个很好的候选者?或者是一个行为异常的加载项...(IE7 Virtual Image:http://www.microsoft.com/Downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&displaylang=en) – Rob 2009-08-27 10:15:03