0

私のモデルがテンプレートで提供されているものに完全に適合していないため、Silverlight 4 ビジネス テンプレートで提供されている認証システムに追加しようとしています。認証を実行し、ロールを提供し、各ロールに許可された操作も行う既存の Web サービスがあります。これは、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;
    }

上記のメソッドは、WebContextBase.Current.Authentication を使用して LoginForm.xaml.cs からアクセスできません... Login などのメソッドのみが表示され、authenticationbase でこれらのメソッドが表示されないため、さらに不可解です。私は完全に混乱しています。認証サービスに新しいメソッドを追加する方法、新しいドメイン サービスを作成する方法、または azman サービスにアクセスして Silverlight クライアントから直接操作を取得する方法を教えてください。

4

1 に答える 1

1

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にあるauthenticationserviceへ

愚かなVBコードでごめんなさい。:D

于 2010-07-07T11:58:44.847 に答える