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 中的身份验证服务

对不起愚蠢的VB代码。:D

于 2010-07-07T11:58:44.847 回答