Недопустимое исключение приведения, вызывающее SqlMembershipProvider GetUser - PullRequest
4 голосов
/ 13 апреля 2011

Я реализую авторизацию в веб-приложении с использованием ASP.NET SqlMembershipProvider, но он случайно генерирует недопустимое исключение приведения при вызове метода GetUser.

Я могу войти в систему и нормально перемещаться по страницам, но в случайных точках, бум, он вылетает и выдает исключение:

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

Я осмотрелся и нашел других людей с такой же проблемой, но без решения.Любые мысли приветствуются.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Хотя я ничего не сделал, чтобы конкретно решить эту проблему, я не видел ее в течение нескольких недель.Оглядываясь назад, я тестировал сайт в нескольких браузерах одновременно, с одной и той же учетной записью, много раз входил и выходил из системы, и, похоже, именно тогда возникла проблема.Теперь все CSS и другие кросс-браузерные вещи исчерпаны, я не использую мультибраузеры так сильно, и не в одно и то же время, и это, кажется, хорошо.

0 голосов
/ 15 апреля 2011

Возможно ли, что некоторые из ваших пользователей имеют все цифры в качестве имени пользователя? Может случиться так, что авто тип ошибается где-то по пути.

...