WCF:GetRolesForUser在哪里?我看到的只是GetRolesForCurrentUser

时间:2010-01-30 01:13:12

标签: .net wcf silverlight roles

当我通过继承RoleProvider创建自定义角色提供程序时,我创建了一个方法 调用public override string [] GetRolesForUser(string username)..但是,当我尝试 我可以访问的所有服务引用都是GetRolesForCurrentUser()。有用 并在幕后调用我的方法确定。就像在,GetRoleseForCurrentUser传递当前 用户进入我的方法所以这一切都很好。但我想知道的是,有没有办法让我这样做 还暴露了我原来的方法(带参数的方法),还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

好吧,首先,我必须假设一些内容,您正在使用用户名/密码消息层身份验证,以及用于消息层授权的自定义角色提供程序。

  

如果您这样做,请确保您保护传输层

GetRolesForCurrentUser()的意思是它检查当前线程Principal user并返回该用户的所有角色,这样用户就永远不会冒充其他人。用户名/密码必须嵌入到邮件头中,当您在客户端上设置代理凭据时,这会自动发生在.net中。

如果允许调用WCF客户端的用户将其Username作为参数传递,则意味着角色提供者仍然会通过当前线程Principal用户对用户进行身份验证,然后您希望进一步对用户进行身份验证。传递给GetRolesForUser(字符串用户名)的用户名,除了某种复杂的模拟方案外没有任何意义。

如果这是您的目标,请查看此link