Silveright - расширение службы AuthenticationService для обеспечения настраиваемой аутентификации - PullRequest
0 голосов
/ 07 июля 2010

Я пытаюсь добавить систему аутентификации, предусмотренную в бизнес-шаблоне Silverlight 4, поскольку моя модель не полностью соответствует модели, указанной в шаблоне.У меня есть веб-сервис, который выполняет мою аутентификацию и предоставляет роли, а также разрешенные операции для каждой роли.Это модель, предоставляемая AzMan / Authentication Manager.

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

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

    public SessionInfo GetOperations(string username, string selectedRole)
    {
        SessionInfo sessionInfo;

        using (AzManServiceClient azClient = new AzManServiceClient("AnonymousAuthentication"))
        {
            sessionInfo = azClient.LoginUserByUsername("msldap://CN=LiveApps,CN=Program Data,DC=HLSUK,DC=local", "AIRS", selectedRole, null, username);
        }

        return sessionInfo;
    }

Вышеуказанный метод недоступен из файла LoginForm.xaml.cs с использованием WebContextBase.Current.Authentication ... Видны только такие методы, как Login, что еще более затрудняет работу, поскольку я не вижуэти методы в базе аутентификации.Я полностью сбит с толку.Как добавить новые методы в службу аутентификации, или создать новую службу домена, или получить доступ к службе azman, чтобы получать операции непосредственно от клиента silverlight.

1 Ответ

1 голос
/ 07 июля 2010

Вы пытались переопределить методы в AuthenticationBase?

Затем вы можете расширить вашу службу аутентификации с помощью любой логики.

 <EnableClientAccess()>
        Public Class AuthenticationRiaService
            Inherits AuthenticationBase(Of UserAccount)

            Protected Overrides Function ValidateUser(ByVal userName As String, ByVal password As String) As Boolean
            End Function
    End Class

Также установите

WebContext.Current.Authentication К вашему сервису аутентификации, указанному в пространстве имен System.ServiceModel.DomainServices.Client.ApplicationServices

Извините за глупый код VB. : D

...