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

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

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

      模擬在WCF中的應(yīng)用

      在《模擬(Impersonation)與委托(Delegation)》一文中,我們對模擬和委托這兩個概念以及相關(guān)編程實現(xiàn)進(jìn)行了詳細(xì)說明。如果將模擬使用在WCF上面,就意味著WCF可以模擬客戶端身份(而不是啟動寄宿進(jìn)程的Windows帳號)執(zhí)行服務(wù)操作。這篇文章主要介紹WCF關(guān)于模擬的編程。

      一、命令式模擬編程

      如果我們有一個具有模擬級別為Impersonation或者Delegation的WindowsIdentity,我們就可以通過調(diào)用其Impersonate對其進(jìn)行身份模擬。在采用WCF認(rèn)證的情況下,我們可以通過當(dāng)前ServiceSecurityContext的WindowsIdentity或者PrimaryIdentity獲取到代碼認(rèn)證客戶端的WindowsIdentity對象,那么在服務(wù)操作中模擬客戶端身份就和簡單了。這種在服務(wù)操作實現(xiàn)中通過編程的方式實現(xiàn)身份模式可以將服務(wù)操作的部分邏輯在模擬的客戶端身份下執(zhí)行。

         1: using (WindowsImpersonationContext context = ServiceSecurityContext.Current.WindowsIdentity.Impersonate())
         2: {
         3:     //在模擬上下文中執(zhí)行的操作
         4: }

      二、聲明式模擬編程

      如果你希望整個操作都在模擬上下文中執(zhí)行,你可以采用聲明式的模擬編程。具體來說,你只需要在需要進(jìn)行模擬的服務(wù)操作方法上應(yīng)用OperationBehaviorAttribute特性,并指定相應(yīng)的模擬選項即可。

         1: [AttributeUsage(AttributeTargets.Method)]
         2: public sealed class OperationBehaviorAttribute : Attribute, IOperationBehavior
         3: {
         4:     //其他成員
         5:     public ImpersonationOption Impersonation { get; set; }
         6: }
         7: public enum ImpersonationOption
         8: {
         9:     NotAllowed,
        10:     Allowed,
        11:     Required
        12: }

      通過OperationBehaviorAttribute的Impersonation屬性指定模擬選項通過枚舉ImpersonationOption表示。定義在ImpersonationOption的三個枚舉項NotAllowed、Allowed和Required分別表示的含義如下。

      • NotAllowed:不允許模擬客戶端身份,這是默認(rèn)值;
      • Allowed:在身份模擬條件滿足條件允許模擬客戶端身份;
      • Required:強(qiáng)制模擬客戶端身份。這要求強(qiáng)制采用Windows認(rèn)證,如果采用非Windows認(rèn)證,會拋出異常。

      此外,如果你要求服務(wù)的所有操作均強(qiáng)制采用身份模擬,你可以通過編程或者配置將ServiceAuthorizationBehavior的ImpersonateCallerForAllOperations屬性設(shè)置成true。但是在這種情況下,如果該服務(wù)具有任何模擬選項被設(shè)置成NotAllowed的服務(wù)操作,服務(wù)在寄宿過程中會拋出InvalidationOperationException異常。

         1: public sealed class ServiceAuthorizationBehavior : IServiceBehavior
         2: {   
         3:     //其他成員
         4:     public bool ImpersonateCallerForAllOperations { get; set; }
         5: }

      三、設(shè)置模擬級別

      在采用Windows認(rèn)證的情況下,服務(wù)可以在成功認(rèn)證后可以獲取代表客戶端身份的WindowsIdentity對象。但是服務(wù)端是否可以根據(jù)WindowsIdentity獲取客戶端身份信息,是否可以模擬客戶端身份訪問某些安全資源,這取決于該WindowsIdentity的模擬級別。

      身份模擬密切地關(guān)系到被模擬身份代表的用戶的安全,所以模擬級別應(yīng)該通過客戶端自行控制。在WCF安全體系中,該模擬級別是在客戶端提供的Windows憑證中指定。如下面的代碼所示,表示客戶端Windows憑證的WindowsClientCredential類型中,具有一個類型為TokenImpersonationLevel枚舉的AllowedImpersonationLevel屬性,用以指定模擬級別。該屬性的默認(rèn)值為None,實際上代表的等級是Identification。

         1: public sealed class WindowsClientCredential
         2: {
         3:     //其他成員
         4:     public TokenImpersonationLevel AllowedImpersonationLevel { get; set; }
         5: }
      posted @ 2011-07-12 22:05  Artech  閱讀(3815)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天堂a无码a无线孕交| 久久综合国产精品一区二区| 熟女国产精品一区二区三| 午夜免费福利小电影| 久久一日本道色综合久久| 香蕉av777xxx色综合一区| 少妇被日自拍黄色三级网络| 国产精品二区中文字幕 | 国模少妇无码一区二区三区| 亚洲日本欧美日韩中文字幕| 亚洲五月天一区二区三区| 国产在线午夜不卡精品影院| 无码人妻一区二区三区兔费| 国产一区| 国产高清在线A免费视频观看| 狠狠色丁香婷婷综合尤物| 女人被狂躁c到高潮喷水一区二区| 国产成人精品性色av麻豆| 成人网站网址导航| 国产明星精品无码AV换脸| 婷婷五月综合激情| 性欧美videofree高清精品| 国产视频一区二区三区四区视频| 亚洲欧洲日产国码无码久久99| 日本一码二码三码的区分| 亚洲人成电影在线天堂色| 欧美精品人人做人人爱视频| 免费无码av片在线观看网站| 久久99久国产精品66| 日韩精品一区二区三区日韩| 无码福利写真片视频在线播放| 久久这里只精品国产免费9| 亚欧成人精品一区二区乱| 久久亚洲av成人无码软件| 天堂网在线.www天堂在线资源| 五大连池市| 久久久久香蕉国产线看观看伊| 午夜精品区| 亚洲一区二区经典在线播放| 90后极品粉嫩小泬20p| 青铜峡市|