Как я могу позвонить в службу RIA из другой службы RIA? - PullRequest
1 голос
/ 30 сентября 2010

В моей службе аутентификации я хотел бы вызывать методы (запрашивать или вызывать) в моей службе пользователя для проверки учетных данных. Так, например:

    protected override AuthUser ValidateCredentials(string name, string password, 
        string customData, out string userData)
    {
        AuthUser user = null;
        userData = null;

        using (UserService svc = new UserService())
        {

            if (the result of a call on UserService shows a valid username/password)
            {
                //Create the user object
                user = new AuthUser()
                {
                    Name = name,
                    UserId = // that user's UserId
                };
            }

            if (user != null)
            {
                //Set custom data fields for HTTP session
                userData = user.UserId.ToString();
            }
        }

        return user;
    }

Результаты, которые я нахожу при поиске таких вещей, как «вызов службы ria из другой службы ria» и т. П., Не связаны с фактическим вызовом друг друга. Я делаю что-то не так с точки зрения парадигмы? Если нет, как, черт возьми, ты это делаешь? :)

1 Ответ

1 голос
/ 30 сентября 2010

Агрегирование DomainServices, когда все, что вы хотите сделать, это запрос довольно легко. Что-то вроде

new MyDomainService (). GetUser (userName)

должно работать просто отлично. Тем не менее, когда вы пытаетесь отправить или вызвать, это становится сложнее, потому что вам нужно инициализировать и утилизировать DomainService. Прошло много времени с тех пор, как я это сделал, но я думаю, что вы можете переопределить Initialize и Dispose в родительском DS для вызова методов в своем дочернем DS. Для отправки вы не сможете вызывать методы напрямую. Вместо этого вам нужно создать ChangeSet и вызвать метод DS.Submit.

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

...