【问题标题】:Method level security in WCF [closed]WCF 中的方法级安全性 [关闭]
【发布时间】:2009-06-30 03:59:55
【问题描述】:

您好
我想创建一个具有登录方法的 WCF 服务,该方法用于验证和赋予用户角色,并根据该角色,允许或禁止用户调用其他服务方法。最好的方法是什么?是否有 WCF 标准机制来实现这一点?
非常感谢!

【问题讨论】:

  • 这个服务是怎么调用的?阿贾克斯?银光?网络表格?其他网站?
  • 不是 web,它是一个 WPF 独立应用程序

标签: authentication .net-3.5 wcf


【解决方案1】:

基本上你不会。从登录方法返回票证是不安全的,如何阻止应用程序对其进行编辑并在每个后续请求中发送伪造版本。是的,你可以签名,但是你发送的东西相当大。

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

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

一旦您有了基于角色的委托人,您就可以使用声明性权限要求

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

关于您想要保护的方法,甚至是整个类。

【讨论】:

  • +1 这样做的好方法,但这是最好的吗?我认为将用户名密码传递给每种方法并不舒适......
  • 根据评论更新。要求用户名和密码是标准的 SOAP 功能,而不是基于令牌的功能。
  • 谢谢吹镖!现在我看到了我的问题的答案
猜你喜欢
  • 2010-12-15
  • 2010-10-04
  • 2014-01-02
  • 1970-01-01
  • 2013-05-01
  • 2013-06-25
  • 2013-04-05
  • 2011-08-27
  • 2016-11-03
相关资源
最近更新 更多