WCF角色服务
WCF角色服务能够从可以发送和使用SOAP消息的任何应用程序访问某个用户的角色。这可以包括不使用.NET Framework的应用程序。因此,这些不同应用程序的用户可以在每个应用程序中具有相同的角色。通常情况下,可以检查用户的角色来确定用户具有执行哪些操作的权限。
角色服务仅提供可通过ASP.NET角色管理获得的功能的一个子集。可以通过角色服务检索用户的角色或检查用户是否属于特定的角色。用户必须经过身份验证才能读取用户的角色。角色服务可使用任何类型的ASP.NET身份验证。
System.Web.ApplicationServices.RoleService是.NET提供的角色服务实现,RoleService类公开了只应通过WCF服务访问的两个方法:
GetRolesForCurrentUser方法(返回已登录用户的所有角色)
IsCurrentUserInRole方法(确定用户是否属于指定的角色)
RoleService对象引发SelectingProvider事件。为SelectingProvider事件创建一个事件处理程序,以选择运行时要使用的角色提供程序。以下代码演示了如何在配置文件中启用角色服务:
<system.web.extensions>
<scripting>
<webServices>
<roleService enabled="true"/>
</webServices>
</scripting>
</system.web.extensions>
角色服务的使用和WCF身份验证服务基本相似,这里不再举例,请读者参考上一篇博客《WCF身份验证服务》的内容。
另外,可以在客户端通过Ajax来请求WCF角色服务,来实施客户端验证。
----------------------注:本文部分内容改编自《.NET安全揭秘》