Проверка ASP.Net Custom MembershipUser через WCF, вызывая незапрошенные сервисные вызовы? - PullRequest
0 голосов
/ 16 июля 2010

Хорошо, ... сначала факты.

Я работаю над проектом ASP.Net, который проверяет своих пользователей в службе WCF. У меня есть класс CutomMembershipUser в общей сборке, который наследуется от MembershipUser, поскольку я использую пользовательский поставщик членства. Все это не может измениться, потому что это вне моей компетенции.

Вот примерно то, что происходит. У меня есть некоторый код в событии Logged_In элемента управления входом, который выглядит следующим образом ...

            CustomMembershipUser user = (CustomMembershipUser)SecurityBL.GetUser(userName);

            if (user.Customer.ToLower() == "some user")
            {
                //impl omitted
            }

Первая строка выполняется без проблем, и я возвращаю правильного пользователя из сервиса. Тем не менее, во второй строке, когда я сравниваю свойство user.Customer, второй запрос отправляется службе с пустой строкой userName, которая вешает целую среду IDE примерно на 30 секунд или около того, и в конечном итоге выдает FaultException<T>, который я можно поймать на сервисной стороне.

Очевидно, мое первое предположение было, что в получателе этого свойства была какая-то логика, которая лениво загружает свойство, но его нет; на самом деле это автоматически реализованное свойство!

Еще более странно, чем ... в вызывающем коде я даже не могу поймать исключение, которое говорит мне, что запрос поступает из другого потока, чем тот, который я выполняю.

Эта же проблема возникает для любого доступа к свойству этого объекта, независимо от того, переопределен он или полностью новый.

Кто-нибудь видел что-нибудь подобное раньше? Я уже 2 дня чешу голову и не знаю, что делать дальше.

Любая помощь будет отличной.

Спасибо заранее. Stimul8d

1 Ответ

1 голос
/ 20 июля 2010
Членство

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

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

...