名稱
|
說明
|
Security.Permissions.PublisherIdentityPermission
|
以發行者為識別的權限管理。
|
Security.Permissions.SiteIdentityPermission
|
以
Site
為識別的權限管理。
|
Security.Permissions.StrongNameIdentityPermission
|
以
StrongName
為識別的權限管理。
|
Security.Permissions.UrlIdentityPermission
|
以
Url
為識別的權限管理。
|
Security.Permissions.ZoneIdentityPermission
|
以
Zone
為識別的權限管理。
|
名稱
|
說明
|
Data.Odbc.OdbcPermission
|
使用
ADO.NET ODBC Provider
的權限。
|
Data.OleDb.OleDbPermission
|
使用
ADO.NET OLE DB Provider
的權限。
|
Data.SqlClient.SqlClientPermission
|
使用
ADO.NET SQL Client Provider
的權限。
|
Data.OracleClient.OraclePermission
|
使用
ADO.NET Oracle Provider
的權限。
|
Drawing.Printing.PrintingPermission
|
列印功能的權限控制。
|
Messaging.MessageQueuePermission
|
MSMQ
的權限控制。
|
Net.DnsPermission
|
存取
DNS
的權限。
|
Net.SocketPermission
|
使用
Socket
的權限。
|
Net.WebPermission
|
存取
Web
的權限。
|
Security.Permissions.EnvironmentPermission
|
存取環境變數的權限。
|
Security.Permissions.FileDialogPermission
|
使用檔案對話框的權限。
|
Security.Permissions.FileIOPermission
|
存取檔案的權限。
|
Security.Permissions.IsolatedStoragePermission
|
Isolated Storage
存取的權限。
|
Security.Permissions.ReflectionPermission
|
使用
Reflection
的權限。
|
Security.Permissions.RegistryPermission
|
存取
Registry
的權限。
|
Diagnostics.EventLogPermission
|
存取事件記錄的權限。
|
Diagnostics.PerformanceCounterPermission
|
存取效能計數器的權限。
|
DirectoryServices.DirectoryServicesPermission
|
存取
Activate Directory
服務的權限。
|
ServiceProcess.ServiceControllerPermission
|
控制服務
(Services)
的權限。
|
Security.Permissions.SecurityPermission
|
一般性的安全權限,如
Reflection
、
Unmanaged Code
等等。
|
Security.Permissions.UIPermission
|
UI
的存取權限。
|
Web.AspNetHostingPermission
|
ASP.NET Host
的權限。
|
PrincipalPermission
|
以
Windows
帳號為識別的權限管理。
|
PrintingPermission
|
印表機的存取權限。
|
值
|
說明
|
可套用的地方
|
LinkDemand
|
驗證僅發生於
JIT
編譯時,因此能得到較高的效率,但此一模式不適用於擁有介面的類別,因為直接由介面呼叫可以跨越此一限制。
|
類別、方法、屬性
|
InheritanceDemand
|
要求繼承者必需擁有此權限。
|
“
|
Demand
|
向
CAS
要求此權限。
|
“
|
Deny
|
拒絕此權限。
|
“
|
PermitOnly
|
除此權限外,拒絕其它權限的要求。
|
“
|
Assert
|
這是一個特殊的權限,能在呼叫者未擁有對應權限時執行該權限所限制的動作,使用此一權限必須擁有
Assertion
權限。
|
“
|
RequestMinimum
|
只要求此一權限,其它的權限將被拒絕。
|
Assembly
|
RequestOptional
|
與
RequestMinimum
搭配使用,也就是說,
RequestMinmum
要求
FileIOPermission
,除了
FileIOPermission
之外的權限要求都會被拒絕,假如以
RequestOptional
要求一個
SocketPermission
的話,那麼這個
Assembly
就允許兩種權限,
FileIOPermission
及
SocketPermission
。
|
“
|
RequestRefuse
|
拒絕此一權限的要求。
|
“
|
public
void OpenFile(string fileName)
{
System.IO.File.Delete(fileName);
}
|
[System.Security.Permissions.FileIOPermission(System.Security.Permissions.SecurityAction.PermitOnly, Read = @"D:\Temp")]
private
void OpenFile()
{
ClassLibrary6.Class1 c = new ClassLibrary6.Class1();
c.OpenFile(@"D:\Temp\0050.gif");
}
|
[System.Net.WebPermission(SecurityAction.PermitOnly, ConnectPattern=@"http://www\.hinet\.net/")]
private
void TestWeb(string url)
{
System.Net.HttpWebRequest req =
(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
}
|
[RegistryPermission(SecurityAction.Deny,Read = @"HKEY_LOCAL_MACHINE\Software")]
private
string TestRegistryPermission(string regPath,string key)
{
RegistryKey r = Registry.LocalMachine.OpenSubKey(regPath);
return (string)r.GetValue(key);
}
|
[System.Security.Permissions.ReflectionPermission(SecurityAction.Deny, Flags = ReflectionPermissionFlag.TypeInformation)]
private
void TestReflectionPermission(object target)
{
MethodInfo m =
target.GetType().GetMethod("GetHello",
BindingFlags.Instance|BindingFlags.NonPublic|BindingFlags.IgnoreCase);
m.Invoke(target,null);
}
|
[System.Net.SocketPermission(SecurityAction.PermitOnly, Access = "Connect", Host = "61.219.38.89",Port = "80", Transport = "All")]
private
void TestSocket(string ip)
{
System.Net.Sockets.Socket socket =
new
System.Net.Sockets.Socket(
System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
socket.Connect(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ip),80));
}
|
[System.Security.Permissions.FileIOPermission(System.Security.Permissions.SecurityAction.PermitOnly, Read = @"D:\Temp")]
[SecurityPermissionAttribute(SecurityAction.Deny, UnmanagedCode = false)]
private
void OpenFile()
{
ClassLibrary6.Class1 c = new ClassLibrary6.Class1();
c.OpenFile(@"D:\Temp\0050.gif");
}
|
[assembly: SecurityPermission(SecurityAction.RequestRefuse, UnmanagedCode = true)]
|
[assembly: SecurityPermission(SecurityAction.RequestRefuse, UnmanagedCode = true , Assertion = true)]
|
名稱
|
用途
|
SqlNotificationPermission
|
管理使用
Sql Server 2005
所新增的
Notification
功能權限。
|
SmtpPermission
|
SMTP
權限控制。
|
NetworkInformationPermission
|
管理使用
.NET B2
中新增的
NetworkInformation
中組件的權限。
|
GacIdentityPermission
|
以
Gac
為識別的權限管理。
|
DataProtectedPermission
|
使用
DDAPI
的權限。
|
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1184631