日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
.NET Framework安全防護(hù)技巧說明

作為一個開發(fā)人員來說,.NET Framework是一款功能非常強(qiáng)大的應(yīng)用程序。不過功能雖然強(qiáng)大,其安全性也還是需要我們?nèi)プ⒅氐?。好容易在繁重的開發(fā)任務(wù)之余抽出點時間學(xué)習(xí)一些東西。發(fā)現(xiàn)機(jī)子里有幾個關(guān)于 System.Security 內(nèi)容的示例,這一個命名空間以前還真是從來沒用過,正好拿來學(xué)習(xí)一下。由于不是系統(tǒng)的學(xué)習(xí),不好組織,想了想,就以.NET Framework安全防護(hù)的示例來說明吧?!?t#

創(chuàng)新互聯(lián)專注于琿春網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供琿春營銷型網(wǎng)站建設(shè),琿春網(wǎng)站制作、琿春網(wǎng)頁設(shè)計、琿春網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造琿春網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供琿春網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

.NET Framework安全一、設(shè)定權(quán)限

  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 文件的寫權(quán)限。

.net framework 的文檔中關(guān)于安全要求有這樣一段話:“若要確保只有被授予了指定權(quán)限的調(diào)用方才能夠調(diào)用您的代碼,可以聲明方式或強(qiáng)制方式要求您的代碼的調(diào)用方擁有特定的權(quán)限或權(quán)限集。要求使運行庫執(zhí)行安全檢查,從而對調(diào)用代碼實施限制。在安全檢查過程中,運行庫遍歷調(diào)用堆棧,檢查堆棧中每個調(diào)用方的權(quán)限,然后確定是否已將要求的權(quán)限授予每個調(diào)用方。如果發(fā)現(xiàn)某個調(diào)用方?jīng)]有要求的權(quán)限,則安全檢查失敗,并引發(fā) SecurityException?!?/p>

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

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

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

SecurityAction.RequestMinimum 是請求運行的最小權(quán)限。這一行要求程序集允許調(diào)用非托管代碼。

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

 
 
 
  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 對于這方面有了大大增強(qiáng),開發(fā)人員不需要很了解技術(shù)就可以做出很不錯的應(yīng)用。不過對于 Windows Form 應(yīng)用程序來說,不少地方還需要程序員自己設(shè)定。

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

 
 
 
  1. GenericIdentity genIdent = 
    new GenericIdentity(userName);  
  2. GenericPrincipal genPrin = 
    new GenericPrincipal
    (genIdent, roles);  
  3. Thread.CurrentPrincipal = 
    genPrin;  

隨后我們有三種辦法來進(jìn)行用戶角色驗證。

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

 
 
 
  1. GenericPrincipal currentPrin = 
    Thread.CurrentPrincipal as 
    GenericPrincipal;  
  2. if (currentPrin != null && 
    currentPrin.IsInRole("Manager"))  
  3. {  
  4. //略  
  5. }  

第二種方法則是使用 PrincipalPermission 類,類似于權(quán)限設(shè)定中的強(qiáng)制方式:

 
 
 
  1. PrincipalPermission prinPerm = 
    new PrincipalPermission
    (null, "Manager");  
  2. try  
  3. {  
  4. prinPerm.Demand();  
  5. //do something  
  6. }  
  7. catch  
  8. {  
  9. //error handling  

第三種方式則類似于權(quán)限設(shè)定中的聲明方式:

 
 
 
  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. {  

關(guān)于.NET Framework安全的另一個重要內(nèi)容是加密。


分享標(biāo)題:.NET Framework安全防護(hù)技巧說明
URL地址:http://www.dlmjj.cn/article/cccgghh.html