日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
WCF接口方法如何進(jìn)行正確調(diào)用

WCF開(kāi)發(fā)插件一經(jīng)出現(xiàn)就立即受到了廣大開(kāi)發(fā)人員的青睞。它獨(dú)特的功能優(yōu)勢(shì)令其在開(kāi)發(fā)領(lǐng)域中占據(jù)著一定的地位。在現(xiàn)實(shí)的場(chǎng)景中,WCF接口方法往往要求指定的用戶(hù)群體才能訪(fǎng)問(wèn),WCF框架提供了對(duì)于Role-Based授權(quán)支持, WCF支持AspNetWindowsTokenRoleProvider, SqlRoleProvider, AuthorizationStoreRoleProvider.#t#

成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供寒亭企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為寒亭眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

基于Windows Group的授權(quán)主要利用ASP.NET Role Provider中的AspNetWindowsTokeRoleProvider來(lái)實(shí)現(xiàn),要求WCF 通過(guò)IIS Host,并且用戶(hù)終端在Domain環(huán)境中.

實(shí)現(xiàn)步驟:

1. 配置WCF IIS Host使用Windows認(rèn)證

可以在IIS Manager中直接設(shè)置WCF Application的認(rèn)證方式,也可以通過(guò)web.config文件實(shí)現(xiàn)

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

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

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

與其它的Role Provider不同,WindowsTokeRoleProvider不需要單獨(dú)聲明,可以直接使用, 例如下面基于A(yíng)DAM的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配置中設(shè)置授權(quán)

 
 
 
  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. 在服務(wù)代碼中指定授權(quán)組

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

通過(guò)上面四步,可實(shí)現(xiàn)對(duì)于WCF 方法調(diào)用授權(quán)控制,這個(gè)場(chǎng)景并非通用,對(duì)于局域網(wǎng)應(yīng)用來(lái)講,是個(gè)不錯(cuò)的選擇,用戶(hù)也可以自己實(shí)現(xiàn)Customer Role Provider從而利用SQL或XML方式實(shí)現(xiàn)授權(quán)。

對(duì)于非windows認(rèn)證的用戶(hù),可以利用SqlRoleProvider來(lái)實(shí)現(xiàn)授權(quán),結(jié)合Sql Membership也可以進(jìn)行身份驗(yàn)證。我個(gè)人很喜歡AuthorizationStoreRoleProvider, 結(jié)合ADAM的強(qiáng)大功能,可以完美解決權(quán)限管理問(wèn)題。


文章標(biāo)題:WCF接口方法如何進(jìn)行正確調(diào)用
鏈接地址:http://m.5511xx.com/article/cdjipji.html