Asp.net 调用SqlMembershipProvider GetUser的强制转换异常无效
我正在使用ASP.NET SqlMembershipProvider在web应用程序上实现授权,但在调用GetUser方法时,它会随机抛出无效的强制转换异常 我可以登录并浏览所有页面,但与随机点相比,砰的一声,它退出,并抛出异常:Asp.net 调用SqlMembershipProvider GetUser的强制转换异常无效,asp.net,sql,sql-server,.net-4.0,sqlmembershipprovider,Asp.net,Sql,Sql Server,.net 4.0,Sqlmembershipprovider,我正在使用ASP.NET SqlMembershipProvider在web应用程序上实现授权,但在调用GetUser方法时,它会随机抛出无效的强制转换异常 我可以登录并浏览所有页面,但与随机点相比,砰的一声,它退出,并抛出异常: Unable to cast object of type 'System.Int32' to type 'System.String' 查看堆栈跟踪,您可以清楚地看到它是由成员资格提供程序引起的: [InvalidCastException: Unable to
Unable to cast object of type 'System.Int32' to type 'System.String'
查看堆栈跟踪,您可以清楚地看到它是由成员资格提供程序引起的:
[InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'.]
System.Data.SqlClient.SqlBuffer.get_String() +5002910
System.Data.SqlClient.SqlDataReader.GetString(Int32 i) +55
System.Web.Security.SqlMembershipProvider.GetUser(String username, Boolean userIsOnline) +1169
System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline) +63
System.Web.Security.Membership.GetUser() +19
_Default.LoadLeadOverview() in \\file1\default.aspx.vb:169
_Default.Page_Load(Object sender, EventArgs e) in \\file1\default.aspx.vb:30
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
我环顾四周,发现其他人也有同样的问题,但没有解决办法。欢迎任何想法。您的一些用户是否可能将所有数字作为用户名?可能是自动类型在某种程度上是错误的 虽然我没有做任何具体的事情来解决这个问题,但我已经有两周没有看到它了。回想起来,我在同一时间在多个浏览器中测试该站点,使用同一个帐户,多次登录和注销,似乎就是在那个时候出现了问题。现在所有的CSS和其他跨浏览器的东西都解决了,我没有在同一时间大量使用多个浏览器,而且看起来还不错。不,我目前在测试/开发时只有两个用户帐户,它们都是字母字符加号和下划线。当我从default.aspx中取出所有代码时,我遇到了同样的问题。这似乎是由会员资格提供商引起的,这有点令人担忧。问题是它看起来是随机的和不一致的,这使得很难确定原因。我只知道唯一一致的因素是成员资格提供程序本身引发的异常。@Ira-这不是堆栈跟踪显示的。请显示发送到db服务器的SQL或服务器上SP的内容。不,没错,堆栈跟踪是从包含代码的页面中获取的。然而,后来我尝试删除代码,同样的问题也出现了。这是在web.config文件中定义的登录页面重定向之后进行的,该文件将身份验证模式定义为mode=“Forms”,并使用限制对所有其他页面的访问。我已经有几天没有看到异常了,但是如果它再次出现,我会发布SQL。谢谢你的帮助。