成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF接口方法如何進行正確調用

開發 開發工具
WCF接口方法一般都會被要求指定的用戶群體才能夠訪問。那么如何才能實現一個正確的授權調用呢?在這里將會為大家詳細介紹。

WCF開發插件一經出現就立即受到了廣大開發人員的青睞。它獨特的功能優勢令其在開發領域中占據著一定的地位。在現實的場景中,WCF接口方法往往要求指定的用戶群體才能訪問,WCF框架提供了對于Role-Based授權支持, WCF支持AspNetWindowsTokenRoleProvider, SqlRoleProvider, AuthorizationStoreRoleProvider.#t#

基于Windows Group的授權主要利用ASP.NET Role Provider中的AspNetWindowsTokeRoleProvider來實現,要求WCF 通過IIS Host,并且用戶終端在Domain環境中.

實現步驟:

1. 配置WCF IIS Host使用Windows認證

可以在IIS Manager中直接設置WCF Application的認證方式,也可以通過web.config文件實現

  1. < system.web>   
  2. < authentication mode="Windows"/>   
  3. < /system.web> 

2. 在web.config文件中啟用RoleProvider

  1. < roleManager enabled="true" defaultProvider=
    "AspNetWindowsTokenRoleProvider"/> 

與其它的Role Provider不同,WindowsTokeRoleProvider不需要單獨聲明,可以直接使用, 例如下面基于ADAM的Provider,則需要額外聲明.

 

  1. < roleManager enabled="true" defaultProvider="RoleManagerAzManADAMProvider"   
  2. cacheRolesInCookie="false">   
  3. < providers>   
  4. < add name="RoleManagerAzManADAMProvider" 
    type="System.Web.Security.AuthorizationStoreRoleProvider, 
    System.Web, Version=2.0.0.0, Culture=neutral, publicKeyToken=b03f5f7f11d50a3a"
     connectionStringName="ADAMConnection" applicationName="yourApp"/>   
  5. < /providers>   
  6. < /roleManager> 

3. 在Service Behaviors配置中設置授權

  1. < behaviors>   
  2. < serviceBehaviors>   
  3. < behavior name="CalculatorServiceBehavior">   
  4. < serviceMetadata httpsGetEnabled="True"/>   
  5. < serviceDebug includeExceptionDetailInFaults="False" />   
  6. < serviceAuthorization principalPermissionMode="UseWindowsGroups" 
    roleProviderName="AspNetWindowsTokenRoleProvider">   
  7. < /serviceAuthorization>   
  8. < /behavior>   
  9. < /serviceBehaviors>   
  10. < /behaviors> 

4. 在服務代碼中指定授權組

 

  1. //指定特定帳戶調用方法   
  2. [PrincipalPermission(SecurityAction.Demand, Name = @"domain\michael")]   
  3. public string GetCaller()   
  4. {   
  5. return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;   
  6. }   
  7. //指定管理員帳戶才能訪問的方法   
  8. [PrincipalPermission(SecurityAction.Demand, Role = @"Administrators")]   
  9. public string GetThreadIdentity()   
  10. {   
  11. return System.Threading.Thread.CurrentPrincipal.Identity.Name;   
  12. }   
  13. //指定特定業務組可以訪問的方法   
  14. [PrincipalPermission(SecurityAction.Demand, Role = @"Resource Manager")]   
  15. public string GetWindowsIdentity()   
  16. {   
  17. return System.Security.Principal.WindowsIdentity.GetCurrent().Name;   

 

通過上面四步,可實現對于WCF 方法調用授權控制,這個場景并非通用,對于局域網應用來講,是個不錯的選擇,用戶也可以自己實現Customer Role Provider從而利用SQL或XML方式實現授權。

對于非windows認證的用戶,可以利用SqlRoleProvider來實現授權,結合Sql Membership也可以進行身份驗證。我個人很喜歡AuthorizationStoreRoleProvider, 結合ADAM的強大功能,可以完美解決權限管理問題。

責任編輯:曹凱 來源: CSDN
相關推薦

2010-02-24 14:41:16

WCF物理地址

2010-03-01 15:12:53

WCF回調契約

2009-12-08 11:34:40

WCF Windows

2010-02-25 09:13:34

WCF異步調用

2010-02-22 10:06:17

Python調用

2009-12-21 18:32:22

關閉WCF鏈接

2010-02-22 14:28:35

WCF實現loadin

2010-03-16 14:41:06

Java Runnab

2010-02-23 17:59:52

WSIT連接WCF

2010-02-23 17:05:38

2010-02-25 16:07:28

WCF REST

2009-12-08 14:10:55

Silverlight

2010-02-26 10:30:03

ASP.NET Aja

2020-11-04 07:05:57

技術總監同事

2010-02-26 11:22:16

LitwareHR使用

2010-03-02 14:12:30

WCF枚舉類型

2010-03-01 17:44:39

Silverlight

2010-02-25 10:10:29

WCF使用Header

2023-12-01 10:19:00

接口優化事務

2009-12-07 14:35:42

WCF異步調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 不卡一区| 天堂成人国产精品一区 | 国产欧美日韩二区 | 亚洲免费精品 | 欧美xxxⅹ性欧美大片 | 久久久久久免费毛片精品 | 成人在线精品视频 | 天天成人综合网 | 欧美成人高清视频 | 欧洲亚洲一区 | 成人免费视频在线观看 | 一级免费看片 | 国产精品精品视频一区二区三区 | 国产精品伦理一区 | 欧美国产一区二区三区 | 日韩欧美专区 | 国产高清精品在线 | 国产精品色 | 成人亚洲精品久久久久软件 | av香港经典三级级 在线 | 一级久久久久久 | 紧缚调教一区二区三区视频 | 日本一区高清 | 亚洲一区二区精品 | 国产成人免费 | 欧美jizzhd精品欧美巨大免费 | 欧美日韩精品区 | 免费特级黄毛片 | 国产99久久精品一区二区永久免费 | 成人免费视频 | 欧美日韩免费视频 | 日韩欧美三级 | 亚洲狠狠爱 | 欧美成人精品欧美一级 | 国产一区999 | 国产精品永久免费 | 日韩在线免费视频 | 亚洲视频一区二区三区 | 亚洲国产一区二区视频 | 狠狠亚洲 | 亚洲一区二区三区桃乃木香奈 |