Проблема во время аутентификации RIA - PullRequest
3 голосов
/ 08 июня 2010

Я создал службу аутентификации в RIA, которая наследуется от DomainService и IAuthenticate.

Проблема заключается в следующем:

Когда LoginOperation не работает (loginOperation.LoginSuccess имеет значение false) из-за неправильных учетных данных, все в порядке, и это сообщается пользователю.

Однако, когда вход в систему успешен, я получаю действительно странное исключение:

{System.ServiceModel.DomainServices.Client.DomainOperationException: ЗагрузитьНе удалось выполнить запрос «Логин».Значение не может быть нулевым.

Имя параметра: validationErrors ---> System.ArgumentNullException: значение не может быть нулевым.Имя параметра: validationErrors at System.ServiceModel.DomainServices.Client.QueryCompletedResult..ctor (IEnumerable 1 entities, IEnumerable 1 включил Entity, Int32 totalCount, IEnumerable`1 validationErrors)


Я действительно не понимаю этого.Что такое IEnumerable validationErrors, где он появляется и почему он должен быть! = Null?Это начало происходить после того, как я перенес свои службы аутентификации из Nhibernate в Entity Framework.Я даже пытался погуглить это исключение, и, видимо, я пока единственный, кто столкнулся с этой проблемой.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 июля 2010

У меня была такая же проблема, спасибо за вашу помощь !!!

Однако это возможно, когда вы делаете ToList () следующим образом:

[DataMember]
public IEnumerable<string> Roles
{
    get
    {
        return ApplicationRoles.Select(r => r.Name).ToList();
    }
    set
    {
        // TODO
    }
}
0 голосов
/ 09 июня 2010

Похоже, что RIA не поддерживает выражения linq в свойствах. Геттер в IEnumerable ролях был проблемой. Вы должны заполнить его вручную; Вы не можете писать такие вещи, как return (from a in User.UserRoles select a.Description).AsEnumerable();, это не будет работать.

...