FileIOPermissionAttribute(SecurityAction) 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 FileIOPermissionAttribute를 사용하여 SecurityAction 클래스의 새 인스턴스를 초기화합니다.
public:
FileIOPermissionAttribute(System::Security::Permissions::SecurityAction action);
public FileIOPermissionAttribute (System.Security.Permissions.SecurityAction action);
new System.Security.Permissions.FileIOPermissionAttribute : System.Security.Permissions.SecurityAction -> System.Security.Permissions.FileIOPermissionAttribute
Public Sub New (action As SecurityAction)
매개 변수
- action
- SecurityAction
SecurityAction 값 중 하나입니다.
예외
action
매개 변수가 유효한 SecurityAction이 아닌 경우
예제
다음 코드 예제에서는 파일 I/O 권한의 FileIOPermissionAttribute 다양 한 수준을 설정 하는 클래스의 여러 인스턴스를 만듭니다.
// This sample demonstrates the use of the FileIOPermissionAttribute class.
// The sample follows the recommended procedure of first granting PermitOnly permissions,
// then using a Deny on that set of granted permissions.
using namespace System;
using namespace System::Reflection;
using namespace System::Security::Permissions;
using namespace System::Security;
using namespace System::IO;
void PermitOnlyMethod();
void PermitOnlyTestMethod();
void TestFailed();
// This method demonstrates the use of the FileIOPermissionAttribute to create a PermitOnly permission.
// Set the Read property.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,Read="C:\\")]
// Set the PathDiscovery property.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,
PathDiscovery="C:\\Documents and Settings\\All Users")]
// Set the Append property.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,
Append="C:\\Documents and Settings\\All Users\\Application Data")]
// Set the Write property.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,
Write="C:\\Documents and Settings\\All Users\\Application Data\\Microsoft")]
// Set the All property.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,
All="C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network")]
void PermitOnlyMethod()
{
Console::WriteLine( "Executing PermitOnlyMethod." );
Console::WriteLine( "PermitOnly the Read permission for drive C." );
Console::WriteLine( "PermitOnly the PathDiscovery permission for \n\tC:\\Documents and Settings\\All Users." );
Console::WriteLine( "PermitOnly the Append permission for \n\tC:\\Documents and Settings\\All Users\\Application Data." );
Console::WriteLine( "PermitOnly the Write permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft." );
Console::WriteLine( "PermitOnly the All permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network." );
PermitOnlyTestMethod();
}
void PermitOnlyTestMethod()
{
Console::WriteLine("Executing PermitOnlyTestMethod.");
try
{
PermissionSet^ ps = gcnew PermissionSet(PermissionState::None);
ps->AddPermission(gcnew FileIOPermission(FileIOPermissionAccess::Write,
"C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile"));
Console::WriteLine("Demanding permission to write " +
"'C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile'");
ps->Demand();
Console::WriteLine("Demand succeeded.");
ps->AddPermission(
gcnew FileIOPermission(FileIOPermissionAccess::Write,
"C:\\"));
Console::WriteLine("Demanding permission to write to drive C.");
// This demand should cause an exception.
ps->Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch (Exception^ e)
{
Console::WriteLine("An exception was thrown because of a write demand: " + e->Message);
}
}
void TestFailed()
{
Console::WriteLine( "Executing TestFailed." );
Console::WriteLine( "Throwing an exception." );
throw gcnew Exception;
}
int main()
{
try
{
PermitOnlyMethod();
}
catch ( Exception^ e )
{
Console::WriteLine( e->Message );
}
}
// This sample demonstrates the use of the FileIOPermissionAttribute class.
// The sample follows the recommended procedure of first granting PermitOnly permissions,
// then using a Deny on that set of granted permissions.
using System;
using System.Reflection;
using System.Security.Permissions;
using System.Security;
using System.IO;
class MyClass
{
// This method demonstrates the use of the FileIOPermissionAttribute to create a PermitOnly permission.
// Set the Read property.
[FileIOPermissionAttribute(SecurityAction.PermitOnly, Read = "C:\\")]
// Set the PathDiscovery property.
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
PathDiscovery = "C:\\Documents and Settings\\All Users")]
// Set the Append property.
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
Append = "C:\\Documents and Settings\\All Users\\Application Data")]
// Set the Write property.
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
Write = "C:\\Documents and Settings\\All Users\\Application Data\\Microsoft")]
// Set the All property.
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
All = "C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network")]
public static void PermitOnlyMethod()
{
Console.WriteLine("Executing PermitOnlyMethod.");
Console.WriteLine("PermitOnly the Read permission for drive C.");
Console.WriteLine("PermitOnly the PathDiscovery permission for \n\tC:\\Documents and Settings\\All Users.");
Console.WriteLine("PermitOnly the Append permission for \n\tC:\\Documents and Settings\\All Users\\Application Data.");
Console.WriteLine("PermitOnly the Write permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft.");
Console.WriteLine("PermitOnly the All permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network.");
PermitOnlyTestMethod();
}
public static void PermitOnlyTestMethod()
{
Console.WriteLine("Executing PermitOnlyTestMethod.");
try
{
PermissionSet ps = new PermissionSet(PermissionState.None);
ps.AddPermission(new FileIOPermission(FileIOPermissionAccess.Write,
"C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile"));
Console.WriteLine("Demanding permission to write " +
"'C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile'");
ps.Demand();
Console.WriteLine("Demand succeeded.");
ps.AddPermission(
new FileIOPermission(FileIOPermissionAccess.Write,
"C:\\"));
Console.WriteLine("Demanding permission to write to drive C.");
// This demand should cause an exception.
ps.Demand();
// The TestFailed method is called if an exception is not thrown.
TestFailed();
}
catch (Exception e)
{
Console.WriteLine("An exception was thrown because of a write demand: " + e.Message);
}
}
public static void TestFailed()
{
Console.WriteLine("Executing TestFailed.");
Console.WriteLine("Throwing an exception.");
throw new Exception();
}
static void Main(string[] args)
{
try
{
PermitOnlyMethod();
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
}
}
}
' This sample demonstrates the use of the FileIOPermissionAttribute class.
' The sample follows the recommended procedure of first granting PermitOnly permissions,
' then using a Deny on that set of granted permissions.
Imports System.Reflection
Imports System.Security.Permissions
Imports System.Security
Imports System.IO
Class [MyClass]
' This method demonstrates the use of the FileIOPermissionAttribute to create a PermitOnly permission.
' Set the Read, PathDiscovery, Append, Write, and All properties.
<FileIOPermissionAttribute(SecurityAction.PermitOnly, Read:="C:\"), _
FileIOPermissionAttribute(SecurityAction.PermitOnly, _
PathDiscovery:="C:\Documents and Settings\All Users"), _
FileIOPermissionAttribute(SecurityAction.PermitOnly, _
Append:="C:\Documents and Settings\All Users\Application Data"), _
FileIOPermissionAttribute(SecurityAction.PermitOnly, _
Write:="C:\Documents and Settings\All Users\Application Data\Microsoft"), _
FileIOPermissionAttribute(SecurityAction.PermitOnly, _
All:="C:\Documents and Settings\All Users\Application Data\Microsoft\Network")> _
Public Shared Sub PermitOnlyMethod()
Console.WriteLine("Executing PermitOnlyMethod.")
Console.WriteLine("PermitOnly the Read permission for drive C.")
Console.WriteLine("PermitOnly the PathDiscovery permission for " & ControlChars.Lf & ControlChars.Tab & "C:\Documents and Settings\All Users.")
Console.WriteLine("PermitOnly the Append permission for " & ControlChars.Lf & ControlChars.Tab & "C:\Documents and Settings\All Users\Application Data.")
Console.WriteLine("PermitOnly the Write permission for " & ControlChars.Lf & ControlChars.Tab & "C:\Documents and Settings\All Users\Application Data\Microsoft.")
Console.WriteLine("PermitOnly the All permission for " & ControlChars.Lf & ControlChars.Tab & "C:\Documents and Settings\All Users\Application Data\Microsoft\Network.")
PermitOnlyTestMethod()
End Sub
Public Shared Sub PermitOnlyTestMethod()
Console.WriteLine("Executing PermitOnlyTestMethod.")
Try
Dim ps As New PermissionSet(PermissionState.None)
ps.AddPermission(New FileIOPermission(FileIOPermissionAccess.Write, "C:\Documents and Settings\All Users\Application Data\Microsoft\Network\SomeFile"))
Console.WriteLine(("Demanding permission to write " & "'C:\Documents and Settings\All Users\Application Data\Microsoft\Network\SomeFile'"))
ps.Demand()
Console.WriteLine("Demand succeeded.")
ps.AddPermission(New FileIOPermission(FileIOPermissionAccess.Write, "C:\"))
Console.WriteLine("Demanding permission to write to drive C.")
' This demand should cause an exception.
ps.Demand()
' The TestFailed method is called if an exception is not thrown.
TestFailed()
Catch e As Exception
Console.WriteLine(("An exception was thrown because of a write demand: " & e.Message))
End Try
End Sub
Public Shared Sub TestFailed()
Console.WriteLine("Executing TestFailed.")
Console.WriteLine("Throwing an exception.")
Throw New Exception()
End Sub
Overloads Shared Sub Main(ByVal args() As String)
Try
PermitOnlyMethod()
Catch e As Exception
Console.WriteLine(e.Message.ToString())
End Try
End Sub
End Class
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET