我想添加到Silverlight 4业务模板中提供的身份验证系统,因为我的模型不完全适合模板中提供的身份验证系统。我有一个现有的Web服务来执行我的身份验证,并为每个角色提供角色并允许执行操作。这是由AzMan/Authentication Manager提供的模型。Silveright - 扩展AuthenticationService以提供自定义身份验证
但是,在进行身份验证之后,我不仅提供了一个角色,还为用户提供了可用角色列表,并允许用户选择其中一个角色,然后获取该选定角色的操作/操作列表。
我的问题是,我无法弄清楚如何向认证服务添加新方法,以允许我获得当前用户的操作以及当前选定的角色以完成登录过程,例如
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访问......只有如登录方法是可见的,因为我不能看到这些方法是更加令人困惑authenticationbase。我完全困惑。如何将新方法添加到身份验证服务,或者我应该创建新的域服务,还是应该访问azman服务以直接从Silverlight客户端获取操作?
是的我正在扩展身份验证基础和GetOperations方法是扩展类的一部分 - 为什么我不能看到它? – Calanus 2010-07-07 13:04:34
您是否将WebContext.Current.Authentication设置为您的身份验证服务? 如果使用Unitycontainer: Container.RegisterInstance(中的AuthenticationService)(WebContext.Current.Authentication) – Einarsson 2010-07-07 14:02:58
我们访问过 新的AuthenticationService()的登录方法登录(),所以你应该能够访问你的方法是办法。不通过WebContext.Current。 – Einarsson 2010-07-07 14:04:06