.NETFramework安全防護技巧是怎么樣的

這篇文章將為大家詳細講解有關.NET Framework安全防護技巧是怎么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創新互聯主營石河子網站建設的網絡公司,主營網站建設方案,app軟件定制開發,石河子h5小程序制作搭建,石河子網站營銷推廣歡迎石河子等地區企業咨詢

作為一個開發人員來說,.NET Framework是一款功能非常強大的應用程序。不過功能雖然強大,其安全性也還是需要我們去注重的。好容易在繁重的開發任務之余抽出點時間學習一些東西。發現機子里有幾個關于 System.Security 內容的示例,這一個命名空間以前還真是從來沒用過,正好拿來學習一下。由于不是系統的學習,不好組織,想了想,就以.NET Framework安全防護的示例來說明吧。 

.NET Framework安全一、設定權限

  1. [FileIOPermission(SecurityAction.
    Demand, Write= "C:\\temp.txt")]  

  2. public class App : 
    System.Windows.Forms.Form  

  3. {  

  4. //略  

FileIOPermissionAttribute 定義于 System.Security.Permissions 里。它繼承于 SecurityAttribute,在這個例子中,要求使用 App 類時必須具有對 C:\temp.txt 文件的寫權限。

.net framework 的文檔中關于安全要求有這樣一段話:“若要確保只有被授予了指定權限的調用方才能夠調用您的代碼,可以聲明方式或強制方式要求您的代碼的調用方擁有特定的權限或權限集。要求使運行庫執行安全檢查,從而對調用代碼實施限制。在安全檢查過程中,運行庫遍歷調用堆棧,檢查堆棧中每個調用方的權限,然后確定是否已將要求的權限授予每個調用方。如果發現某個調用方沒有要求的權限,則安全檢查失敗,并引發 SecurityException。”

例子中,權限是以聲明的方式出現的。SecurityAction.Demand 可以作用于類或方法,在這里是作用于類上。Write 是 FileIOPermission 的屬性之一,其它常用屬性還有 Read、Append、All 等等。

SecurityAction 枚舉中還有一些值是作用于 assembly 上的。比如以下的例子:

  1. [assembly:SecurityPermission
    (SecurityAction.RequestMinimum ,
    UnmanagedCode=true)] 

SecurityAction.RequestMinimum 是請求運行的最小權限。這一行要求程序集允許調用非托管代碼。

除了聲明方式外,還可以使用強制方式。如下的代碼:

  1. FileIOPermission filePerm = 
    new FileIOPermission(FileIO
    PermissionAccess.AllAccess, 
    "C:\\temp.txt");  

  2. try  

  3. {  

  4. filePerm.Demand();   

  5. // Code to access file goes here  

  6. }  

  7. catch (SecurityException excep)  

  8. {  

  9. MessageBox.Show (excep.Message);  

  10. return;  

  11. }  

.NET Framework安全二、用戶角色管理

用戶及其角色的管理是在許多程序中都要使用到的。如今 asp.net 2.0 對于這方面有了大大增強,開發人員不需要很了解技術就可以做出很不錯的應用。不過對于 Windows Form 應用程序來說,不少地方還需要程序員自己設定。

假定我們已知曉了 userName 以及它所屬于的 roles,那么可以這樣來設置當前線程的 Principal:

  1. GenericIdentity genIdent = 
    new GenericIdentity(userName);  

  2. GenericPrincipal genPrin = 
    new GenericPrincipal
    (genIdent, roles);  

  3. Thread.CurrentPrincipal = 
    genPrin;  

隨后我們有三種辦法來進行用戶角色驗證。

***種方法是使用 GenericPrincipal.IsInRole 方法:

  1. GenericPrincipal currentPrin = 
    Thread.CurrentPrincipal as 
    GenericPrincipal;  

  2. if (currentPrin != null && 
    currentPrin.IsInRole("Manager"))  

  3. {  

  4. //略  

  5. }  

第二種方法則是使用 PrincipalPermission 類,類似于權限設定中的強制方式:

  1. PrincipalPermission prinPerm = 
    new PrincipalPermission
    (null, "Manager");  

  2. try  

  3. {  

  4. prinPerm.Demand();  

  5. //do something  

  6. }  

  7. catch  

  8. {  

  9. //error handling  

第三種方式則類似于權限設定中的聲明方式:

  1. private void DecPermButton_Click
    (object sender, System.EventArgs e)  

  2. {  

  3. try  

  4. {  

  5. performManagerAction();  

  6. // do something  

  7. }  

  8. catch  

  9. {  

  10. // error handling  

  11. }  

  12. }  

  13. [PrincipalPermission
    (SecurityAction.Demand, 
    Role="Manager")]  

  14. void performManagerAction()  

  15. {  

關于.NET Framework安全防護技巧是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文題目:.NETFramework安全防護技巧是怎么樣的
網頁鏈接:http://m.kartarina.com/article42/jedgec.html

成都網站建設公司_創新互聯,為您提供ChatGPT小程序開發定制開發企業網站制作做網站建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設
主站蜘蛛池模板: 无码激情做a爰片毛片AV片 | 亚洲Av无码国产一区二区 | 亚洲高清无码专区视频| 曰韩无码无遮挡A级毛片| 免费人成无码大片在线观看| 亚洲av无码精品网站| 无码中文字幕乱码一区| 成在人线av无码免费高潮喷水| 亚洲AV色无码乱码在线观看| 亚洲?v无码国产在丝袜线观看| 色综合久久中文字幕无码| 国产av激情无码久久| 999久久久无码国产精品| 亚洲精品人成无码中文毛片| 亚洲a∨无码精品色午夜| 亚洲av日韩av无码| 成人午夜精品无码区久久| 亚洲AV无码精品国产成人| 久久国产亚洲精品无码 | 少妇人妻无码专区视频| 亚洲综合无码AV一区二区| 精品乱码一区内射人妻无码| 一夲道dvd高清无码| 日韩AV无码久久一区二区| 国精品无码一区二区三区在线| 蜜芽亚洲av无码一区二区三区| 亚洲国产成人精品无码区在线秒播 | 精品少妇无码AV无码专区| 亚洲乱亚洲乱妇无码麻豆| 亚洲乱亚洲乱少妇无码| 国产成人无码精品一区不卡| 无码熟妇人妻AV影音先锋| 无码国内精品久久综合88| 亚洲一区二区三区国产精品无码| 无码人妻熟妇AV又粗又大 | 亚洲爆乳无码专区| 国精品无码一区二区三区左线| HEYZO无码综合国产精品227| 国产成人无码精品一区在线观看 | 无码日韩人妻精品久久| 国产精品无码亚洲一区二区三区|