<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [WCF權(quán)限控制]WCF的三種授權(quán)模式

      前面的兩篇文章(《從兩個重要的概念談起:Identity與Principal[上篇]》和《從兩個重要的概念談起:Identity與Principal[下篇]》)主要探討基于安全主體的授權(quán)。通過這些介紹我們知道:如果我們在實(shí)施授權(quán)的時候,當(dāng)前線程的安全主體能夠被正確設(shè)置,我們就可以正確地完成授權(quán)。基于相同的原理,對于WCF的服務(wù)授權(quán),如果正確的安全主體能夠在服務(wù)操作被執(zhí)行之前被正確設(shè)置到當(dāng)前線程,借助于這個安全主體,我們不但可以采用命令式編程的方式將授權(quán)邏輯寫在相應(yīng)的操作中,也可以采用聲明式編程的方式將授權(quán)策略定義在應(yīng)用在服務(wù)操作方法上的PrincipalPermissionAttribute特性中。

      目錄:
      一、三種授權(quán)模式
      二、RoleProviderPrincipal
      三、ServiceAuthorizationBehavior

      一、三種授權(quán)模式

      安全主體具有兩個基本的要素:身份與權(quán)限。身份在客戶端經(jīng)過認(rèn)證之后已經(jīng)確立下來,現(xiàn)在需要解決的問題就是如何獲取被認(rèn)證用戶的權(quán)限。為了解決這個問題,WCF為我們提供了不同的方案,我們把這些方案成為不同的“安全主體權(quán)限模式(Principal Permission Mode)”。具體來說,WCF支持如下三種安全主體權(quán)限模式。

      • 采用Windows用戶組:將經(jīng)過認(rèn)證的用戶映射為同名的Windows帳號,將該帳號所在的用戶組作為權(quán)限集;
      • 采用ASP.NET Roles提供程序:通過ASP.NET角色管理機(jī)制借助于某個RoleProvider獲取基于當(dāng)前認(rèn)證用戶的角色列表,并將其作為權(quán)限集;
      • 自定義權(quán)限模式自定義權(quán)限解析和安全主體創(chuàng)建機(jī)制。

      在WCF關(guān)于安全應(yīng)用編程接口中,安全主體權(quán)限模式通過System.ServiceModel.Description.PrincipalPermissionMode枚舉表示。下面的代碼片斷表示PrincipalPermissionMode的定義。

         1: public enum PrincipalPermissionMode
         2: {
         3:     None,
         4:     UseWindowsGroups,
         5:     UseAspNetRoles,
         6:     Custom
         7: }

      采用的安全主體權(quán)限模式?jīng)Q定了最終生成的安全主體的類型。之前我們介紹了WindowsPrincipal和GenericPrincoipal,而UseAspNetRoles模式對應(yīng)的是另一種安全主體類型:RoleProviderPrincipal。

      二、RoleProviderPrincipal

      RoleProviderPrincipal定義在System.ServiceModel.Security命名空間下。RoleProviderPrincipal顧名思義,就是基于ASP.NET RoleProvider授權(quán)模式下產(chǎn)生的安全主體。和X509Identity一樣,RoleProviderPrincipal僅僅是定義在System.ServiceModel程序集中的一個內(nèi)部類型而已。下面的代碼片斷體現(xiàn)了RoleProviderPrincipal的定義。

         1: internal sealed class RoleProviderPrincipal : IPrincipal
         2: {   
         3:     public RoleProviderPrincipal(object roleProvider, ServiceSecurityContext securityContext);
         4:     public bool IsInRole(string role);
         5:     public IIdentity Identity { get; }
         6: }

      三、ServiceAuthorizationBehavior

      在運(yùn)行時,WCF的服務(wù)端框架根據(jù)當(dāng)前DispatchRuntime的PrincipalPermissionMode屬性判斷具體采用哪種安全主體權(quán)限模式。如果采用UseAspNetRoles模式,通過RoleProvider屬性得到用于獲取角色列表的RoleProvider。PrincipalPermissionMode和RoleProvider在DispatchRuntime中的定義如下所示。

         1: public sealed class DispatchRuntime
         2: {
         3:     //其他成員
         4:     public PrincipalPermissionMode PrincipalPermissionMode { get; set; }
         5:     public RoleProvider RoleProvider { get; set; }
         6: }

      而DispatchRuntime的上述兩個屬性最終是通過一個特殊的服務(wù)行為進(jìn)行設(shè)置的,該服務(wù)行為的類型為ServiceAuthorizationBehavior。從下面的代碼片斷中可以看到PrincipalPermissionMode和RoleProvider兩屬性依然定義在ServiceAuthorizationBehavior中。定義在ServiceAuthorizationBehavior中的授權(quán)相關(guān)的設(shè)置最終通過ApplyDispatchBehavior方法被應(yīng)用到所有終結(jié)點(diǎn)分發(fā)器(EndpointDispatcher)的DispatchRuntime上。

         1: public sealed class ServiceAuthorizationBehavior : IServiceBehavior
         2: {
         3:     //其他成員
         4:     void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection parameters);
         5:     void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase);
         6:     void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase);
         7:  
         8:     public PrincipalPermissionMode PrincipalPermissionMode { get; set; }
         9:     public RoleProvider RoleProvider { get; set; }
        10: }
      posted @ 2011-07-01 22:44  Artech  閱讀(14278)  評論(11)    收藏  舉報
      主站蜘蛛池模板: 欧美在线一区二区三区精品| 成人久久精品国产亚洲av| 亚洲一区二区视频在线观看| 连南| 日韩精品中文字幕一线不卡| 人人妻人人狠人人爽天天综合网| 亚洲春色在线视频| 亚洲中文字幕第二十三页| 国产精品一区二区黄色片| 最新国产精品拍自在线观看| 免费a级毛片无码av| 国产超碰无码最新上传| 国产综合视频一区二区三区| 利津县| 日本三级理论久久人妻电影| 亚洲欧美高清在线精品一区二区| 大桥未久亚洲无av码在线| 亚洲一区二区三区自拍偷拍 | 亚洲精品国产精品国在线| 亚洲av永久无码精品网站| 免费人成在线观看网站| 国产成人麻豆亚洲综合无码精品| 色欲国产精品一区成人精品| 国产视频有码字幕一区二区| 日夜啪啪一区二区三区| 竹山县| 欧美牲交a欧美牲交aⅴ一| 三级三级三级A级全黄| 免费午夜无码片在线观看影院| 九九热在线免费播放视频| 夜鲁鲁鲁夜夜综合视频| 阜平县| 毛片av在线尤物一区二区| 人妻被猛烈进入中文字幕| 18禁无遮挡啪啪无码网站破解版| 欧美高清freexxxx性| 亚洲天天堂天堂激情性色| 精品无码国产污污污免费| 人妻无码ΑV中文字幕久久琪琪布 国产乱人伦AV在线麻豆A | 亚洲色大成网站WWW永久麻豆| 长乐市|