2009-06-30 89 views
0


我想创建一个WCF服务,该服务具有登录方法,该方法正在验证和授予用户角色,并且根据该角色允许或禁止用户调用其他服务方法。哪种做法最好?是否有WCF标准机制来实现这一目标?
非常感谢!WCF中的方法级别安全

+0

如何被调用?阿贾克斯?Silverlight的?Web表单?其他网站? – blowdart 2009-06-30 04:13:12

+0

不是web这种服务,它是一个WPF独立应用 – 2009-06-30 04:18:54

回答

1

基本上你没有。从登录方法返回票证是不安全的,停止应用程序编辑它并在随后的每个请求中发送伪造版本是什么。是的,你可以签署它,但你发送的东西很大。

每次只需要一个用户名/密码组合,并使用标准认证和授权位,以及基于角色的CAS根据角色进行检查和限制。

WCF已经提供了使用基于消息的安全性所需的一切,并且每个请求都需要用户名和密码 - 这是一个标准的SOAP函数。插入身份验证提供程序(如果您已经使用ASP.NET成员身份函数,则很容易),然后插入角色(如果使用ASP.NET位,则容易再次实现 - 否则,您可以使用roll your own

一旦您拥有角色根据主,你可以使用声明权限要求

[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")] 

你想保护的方法,甚至是整个类。