问题描述
我遇到了Commerce Server 2009的UpmProvider成员资格提供程序的问题,该成员资格提供程序未在MembershipUser上设置IsLocked属性。 使用web.config中的默认参数,默认
类型为nvarchar(255)的字段u_logon_error_dates填充日期值,12次尝试后,长度为484,第13次尝试设置dt_last_lockedout_date但不设置IsLockedOut标志。还会发生以下错误:
System.ApplicationException:配置文件服务Update()失败。 ---> Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileSystemException:无法将配置文件保留到底层存储。 ---> System.Runtime.InteropServices.COMException(0x80040E57):
命令中的字面值超出了关联列类型的范围。 在Microsoft.CommerceServer.Interop.Profiles.IProfileObject2.Update()
在Microsoft.CommerceServer.Runtime.Profiles.Profile.Update()
---内部异常堆栈跟踪结束---
在Microsoft.CommerceServer.Runtime.Profiles.Profile.Update()
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.Update()
扩展错误信息:
---内部异常堆栈跟踪结束---
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.Update()
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.LogInvalidPasswordAttempt(String property)
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.ValidateUser(String password)
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider.ValidateUser(String username,String password)
如果我在web.config中添加以下参数,我会得到另一种行为。
maxInvalidPasswordAttempts =" 6" passwordAttemptWindow = QUOT 1 QUOT; passwordLockoutPeriod =" 0"
在指定的尝试次数后,应用程序挂起登录操作,并给出以下错误:
System.Runtime.InteropServices.COMException(0xC1003F80):第三方提供商发生内部错误。 at ADODB.ConnectionClass.Execute(String CommandText,Object& RecordsAffected,Int32 Options)
在Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider.ExecuteQuery(String query,Int32 pageIndex,Int32 pageSize,Int32& totalRecords)
在System.Web.Security.Membership.FindUsersByEmail(String emailToMatch,Int32 pageIndex,Int32 pageSize,Int32& totalRecords)
在System.Web.Security.Membership.FindUsersByEmail(String emailToMatch)
有关解决此问题的任何提示吗?
Brgds Jonas
Hi,
I've encountered a problem with the UpmProvider membership provider for Commerce Server 2009 which doesn't set the IsLocked property on the MembershipUser. With the default parameters in web.config, the field u_logon_error_dates which has a default type of nvarchar(255) gets filled with date values and after 12 attempts, the length is 484 and the 13th attempt sets the dt_last_lockedout_date but not the IsLockedOut flag. The following errors also occur:
System.ApplicationException: Profile service Update() failed. ---> Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileSystemException: Failed to persist profile to underlying stores. ---> System.Runtime.InteropServices.COMException (0x80040E57): Literal value in the command exceeded the range of the type of the associated column. at Microsoft.CommerceServer.Interop.Profiles.IProfileObject2.Update()
at Microsoft.CommerceServer.Runtime.Profiles.Profile.Update()
--- End of inner exception stack trace ---
at Microsoft.CommerceServer.Runtime.Profiles.Profile.Update()
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.Update()
Extended error information:
--- End of inner exception stack trace ---
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.Update()
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.LogInvalidPasswordAttempt(String property)
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipUser.ValidateUser(String password)
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider.ValidateUser(String username, String password)
If I add the following parameters in web.config, I get another behaviour.
maxInvalidPasswordAttempts="6" passwordAttemptWindow="1" passwordLockoutPeriod="0"
After the specified number of attempts, the application hangs on the logon action, and gives me the following error:
System.Runtime.InteropServices.COMException (0xC1003F80): Internal error occurred in 3rd party provider. at ADODB.ConnectionClass.Execute(String CommandText, Object& RecordsAffected, Int32 Options)
at Microsoft.CommerceServer.Runtime.Profiles.UpmMembershipProvider.ExecuteQuery(String query, Int32 pageIndex, Int32 pageSize, Int32& totalRecords)
at System.Web.Security.Membership.FindUsersByEmail(String emailToMatch, Int32 pageIndex, Int32 pageSize, Int32& totalRecords)
at System.Web.Security.Membership.FindUsersByEmail(String emailToMatch)
Any tips on solving this issue?
Brgds Jonas
这篇关于未设置MembershipUser.IsLockedOut并发生配置文件错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!