【问题标题】:WCF: Where is GetRolesForUser? all I see is GetRolesForCurrentUserWCF:GetRolesForUser 在哪里?我所看到的只是 GetRolesForCurrentUser
【发布时间】:2010-01-30 01:13:11
【问题描述】:
当我通过继承 RoleProvider 创建自定义角色提供程序时,我创建了一个方法
称为 public override string[] GetRolesForUser(string username) .. 但是,当我尝试
要使用此服务参考,我只能访问 GetRolesForCurrentUser()。有用
并在幕后调用我的方法。如中,GetRoleseForCurrentUser 传递当前
用户进入我的方法,所以一切都很好。但我想知道的是,有没有办法让我
还公开我的原始方法(带参数的方法),还是我遗漏了什么?
【问题讨论】:
标签:
.net
wcf
silverlight
roles
【解决方案1】:
嗯,首先我必须假设一些东西,您正在使用用户名/密码消息层身份验证,以及消息层授权的自定义角色提供程序。
如果您这样做,请确保确保传输层的安全
GetRolesForCurrentUser() 的要点是它检查当前线程的 Principal 用户并返回该用户的所有角色,这样用户就永远不能冒充其他人。用户名/密码必须嵌入到消息标头中,当您在客户端上设置代理凭据时,这会在 .net 中自动发生。
如果允许调用 WCF 客户端的用户将其用户名作为参数传递,则意味着角色提供者在设计上仍将通过当前线程 Principal 用户对用户进行身份验证,然后您希望通过传递给GetRolesForUser(string username)的Username,除了某种复杂的模拟方案之外,没有任何意义。
如果这是您的目标,请查看link