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安全揭秘》
作者:玄魂
出處:http://www.cnblogs.com/xuanhun/
查看本欄目