• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    .NET 框架中的安全性概述

    發布: 2008-5-13 10:38 | 作者: 不詳 | 來源: 賽迪 | 查看: 126次 | 進入軟件測試論壇討論

    領測軟件測試網



    圖 3. 堆棧審核示例


    函數可以選擇修改堆棧審核,有一些機制可完成這種修改。首先,一個函數可能需要確定調用它的多個函數。在這種情形下,它可以斷言一個特定的權限。如果發生了查找斷言權限的堆棧審核,那么在檢查這個函數的激活記錄以尋找該權限時,如果該函數具有它斷言的權限,則檢查成功,堆棧審核將會終止。斷言本身是一個受保護操作,因為它將向斷言訪問受保護資源權限的函數的所有調用方開放對該受保護資源的訪問權限。因此,在運行庫中,安全系統會檢查包含自我斷言的函數的程序集是否具有它試圖斷言的權限。 

    修改堆棧審核的另一種辦法是支持函數拒絕權限。當一個函數知道它不應該訪問某個資源并拒絕權限時,就可能發生這種情形。PermitOnly 提供了類似 deny 的功能,因為它會導致堆棧審核失敗。但 deny 指定的是會導致堆棧審核失敗的權限集,而 PermitOnly 指定的則是繼續堆棧審核所需的權限集。 

    注在使用 Deny 堆棧修飾符時,應該小心。如果早期的堆棧幀是一個斷言,則會忽略 Deny 修飾符。另外,拒絕基于路徑的權限是相當困難的,這是因為經常有各種不同的路徑字符串實際是指向相同位置的。拒絕一個特定路徑表達式仍會開放其他的路徑。

    還有最后一個需要知道的要點。在任何時刻,一個堆棧幀只能有一個 Deny、一個 PermitOnly 和一個 Assert 處于有效狀態。例如,如果開發人員需要斷言許多權限,他們就應該創建一個 PermissionSet 來表示該集合,并只進行一個單獨的斷言。有一些方法可用來刪除一個堆棧審核修飾符的當前 PermissionSet 設置,以便注冊其他的權限集。此類方法的一個示例是 System.Security.CodeAccessPermission.RevertPermitOnly。

    下面的示例說明了前面介紹的各種堆棧修改技術:

    using System;
    using System.Security;
    using System.Security.Permissions;

    namespace PermissionDemand
    {
       class EntryPoint

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>