要求 XML 編碼的使用權限
![]() |
---|
在 .NET Framework 4 版 中,已經移除對 RequestMinimum、RequestOptional 和 RequestRefuse 使用權限要求的執行階段支援。本主題不適用於以 .NET Framework 4 (含) 以後版本為基礎的程式碼。如需這項變更和其他變更的詳細資訊,請參閱 .NET Framework 4 中的安全性變更。 |
如果您需要要求自訂使用權限集合 (使用 RequestMinimum、RequestOptional 或 RequestRefuse),則可以利用下列兩種方法的其中一個來使用所需使用權限集合的 XML 表示:您可以傳遞包含實際 XML 編碼使用權限集合的字串,或者提供包含該編碼使用權限集合的 XML 檔的位置。 下列範例在 PermissionSetAttribute 使用 XML。 XML 旗標是一個包含 XML 編碼的使用權限集合的字串,在本範例中是表示一個未受限的 UIPermission 和一個未受限的 RegistryPermission。
範例
'The attribute is placed at the assembly level.
Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, XML := "<PermissionSet class=""System.Security.PermissionSet"" version=""1""><Permission class=""System.Security.Permissions.UIPermission, mscorlib"" version=""1""><AllWindows/></Permission><Permission class=""System.Security.Permissions.RegistryPermission, mscorlib"" version=""1""><Unrestricted/></Permission></PermissionSet>")>
Namespace MyNamespace
Public Class MyClass1
Public Sub New()
End Sub
Public Sub MyMethod()
'Perform user interface operations here.
End Sub
End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, XML="<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"><Permission class=\"System.Security.Permissions.UIPermission, mscorlib\" version=\"1\"><AllWindows/></Permission><Permission class=\"System.Security.Permissions.RegistryPermission, mscorlib\" version=\"1\"><Unrestricted/></Permission></PermissionSet>")]
namespace MyNamespace
{
using System;
using System.Runtime.InteropServices;
public class MyClass
{
public MyClass()
{
}
public void MyMethod()
{
//Perform user interface operations here.
}
}
}
以下的範例將說明包含相同 XML 編碼的使用權限集合的檔案,並提供其檔案位置和名稱來要求一個自訂的使用權限集合。 如果您沒有指定 XML 檔案的位置,Runtime 將在含有該應用程式的相同目錄中尋找。
Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
'The attribute is placed at the assembly level.
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, File := "pset.xml")>
Namespace MyNamespace
Public Class MyClass1
Public Sub New()
End Sub
Public Sub MyMethod()
'Perform operations that require permissions here.
End Sub
End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, File = "pset.xml")]
namespace MyNamespace
{
using System;
using System.Runtime.InteropServices;
public class MyClass
{
public MyClass()
{
}
public void MyMethod()
{
//Perform operations that require permissions here.
}
}
}
建立 XML 編碼的使用權限集合
您可以建立 PermissionSet 物件的執行個體,將需要的使用權限執行個體加入至物件,然後呼叫 ToXml 方法以傳回表示 XML 編碼的 SecurityElement 物件,或呼叫 ToString 方法以傳回表示 XML 編碼的字串,來建立 XML 編碼的使用權限集合。