程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#中DnsPermission類簡介及示例應用

C#中DnsPermission類簡介及示例應用

編輯:關於C#

該類控制對網絡上域名系統(DNS)服務器的訪問權限,默認權限允許所有的本地和網絡應用程序訪問DNS服務,網絡應用程序沒有DNS權限。DnsPermission類常用方法及說明如表所示。

表  DnsPermission類常用方法

名稱 說明 Copy 創建當前權限實例的相同副本 FromXml 以XML編碼重新構造DnsPermission實例 Intersect 創建一個是當前權限實例與指定權限實例的交集的權限實例 IsSubsetOf 確定當前權限實例是否是指定權限實例的子集 IsUnrestricted 檢查對象的整體權限狀態 ToXml 創建DnsPermission實例及其當前狀態的XML編碼 Union 創建一個是當前權限實例與指定權限實例的並集的權限實例

下面對比較重要的方法進行詳細介紹。

(1)Copy方法

創建當前權限實例的相同副本。

語法:

public override IPermission Copy ()

返回值:DnsPermission類的新實例,是當前實例的相同副本。

(2)ToXml方法

創建DnsPermission實例及其當前狀態的XML編碼。

語法:

public override SecurityElement ToXml ()

返回值:SecurityElement實例,包含安全對象的XML編碼表示形式,包括狀態信息。

(3)Intersect方法

創建一個是當前權限實例與指定權限實例的交集的權限實例。

public override IPermission Intersect
(
IPermission target
)

參數:

target:要與當前實例求交的DnsPermission實例。

返回值:一個DnsPermission實例,表示當前DnsPermission實例與指定DnsPermission實例的交集;如果交集為空,則為空引用(在Visual Basic中為Nothing)。如果當前實例和target都是不受限制的,則該方法將返回一個不受限制的、新的DnsPermission實例;否則返回空引用。

示例 DnsPermission類的方法應用舉例

本示例實現的是設置與獲取本機的DNS信息,獲得當前權限實例是否是指定權限實例的子集。

單擊【交集權限】按鈕,用於判斷當前權限實例與指定權限實例是否存在交集。【交集權限】按鈕的Click事件代碼如下:

private void button8_Click(object sender, EventArgs e)
{
try
{
this.button6.PerformClick();
DnsPermission myPermissionCopy = (DnsPermission)myPermission.Copy();
DnsPermission dsNew = new DnsPermission(PermissionState.None);
dsNew.Demand();
DnsPermission permission =
(DnsPermission)myPermissionCopy.Intersect(dsNew);
if (permission != null)
PrintKeysAndValues(permission.ToXml().Attributes);
else
MessageBox.Show("當前權限實例與指定權限實例的交集的權限不存在");
}
catch (Exception ey) { MessageBox.Show(ey.Message); }
}

單擊【原DNS設置】按鈕,調用UseDns與PrintKeysAndValues顯示DNS信息列表。【原DNS設置】按鈕的Click事件代碼如下:

private void button7_Click(object sender, EventArgs e)
{
UseDns();
}

UseDns方法用於創建DnsPermission實例及其當前狀態的XML編碼,其實現代碼如下:

public void UseDns()
{
this.button6.PerformClick();
myPermission.Demand();
PrintKeysAndValues(myPermission.ToXml().Attributes);
}
PrintKeysAndValues方法以“名稱/值”對形式顯示XML元素屬性,其實現代碼如下:
private void PrintKeysAndValues(Hashtable myHashtable)
{
IDictionaryEnumerator myEnumerator = myHashtable.GetEnumerator();
while (myEnumerator.MoveNext())
{
this.listBox1.Items.Add(myEnumerator.Key);
this.listBox2.Items.Add( myEnumerator.Value);
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved