【发布时间】:2014-05-16 03:27:56
【问题描述】:
我正在尝试对 REST WCF 服务实施基于角色的身份验证。我阅读了很多关于这个主题的信息,但没有清楚地了解我必须做什么。 我了解如何使用 [PrincipalPermission] 属性限制对服务的访问,但不知道如何检查用户是否属于某个角色。 因此,如果有人能指引我走向正确的道路,我将不胜感激(例如,制定路线图我应该怎么做才能实现这一目标)。
让我描述一下这种情况。我有一个托管在服务器 A 上的远程服务和托管在服务器 B 上的 ASP.Net MVC 客户端。 所有这些休息服务都可以访问数据库,我可以在其中读取用户是否可以访问服务的信息。
【问题讨论】:
-
我们可能需要更多关于您项目性质的信息。例如,如果它是您正在创建的 Web 服务器并且您打算将其公开,那么(据我所知)无法以某种方式捕获一些匿名用户的“角色”。因此,您将坚持检查数据库的值以确定角色。但是,如果您对网络用户使用 TCPIP 绑定,则可以通过调用 LDAP 服务器来获取角色。但我们需要更多信息...
-
我的所有服务都应该位于 Internet 上。这些服务中的每一项都在处理机密信息。所以我必须按照用户角色来限制对这些服务的访问。存储在数据库中的有关用户、角色和服务的所有信息。
-
作为创建服务的平台,我使用 WCF。因为它是 REST 服务,所以我使用 webHttpBinding。客户端和服务之间的交互是通过以下方式进行的。我有一个 ASP.Net MVC 项目(充当客户端)。用户在站点上授权并尝试调用远程服务。当他尝试调用服务时,服务应该检查用户是否可以访问这个 REST 服务?