GacMembershipCondition 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
전역 어셈블리 캐시 멤버 자격을 테스트하여 어셈블리가 코드 그룹에 속하는지 여부를 확인합니다. 이 클래스는 상속될 수 없습니다.
public ref class GacMembershipCondition sealed : System::Security::ISecurityEncodable, System::Security::Policy::IMembershipCondition
public ref class GacMembershipCondition sealed
public sealed class GacMembershipCondition : System.Security.ISecurityEncodable, System.Security.Policy.IMembershipCondition
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class GacMembershipCondition
type GacMembershipCondition = class
interface ISecurityEncodable
interface ISecurityPolicyEncodable
interface IMembershipCondition
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type GacMembershipCondition = class
interface IMembershipCondition
interface ISecurityEncodable
interface ISecurityPolicyEncodable
Public NotInheritable Class GacMembershipCondition
Implements IMembershipCondition, ISecurityEncodable
Public NotInheritable Class GacMembershipCondition
- 상속
-
GacMembershipCondition
- 특성
- 구현
예제
다음 예제에서는 클래스의 사용을 보여 줍니다 GacMembershipCondition .
using namespace System;
using namespace System::Security;
using namespace System::Security::Policy;
using namespace System::Collections;
public ref class GacMembershipConditionDemo
{
private:
// Demonstrate the Copy method, which creates an identical
// copy of the current permission.
bool CopyDemo()
{
Console::WriteLine(
"************************************************************");
GacMembershipCondition ^ Gac1 = gcnew GacMembershipCondition;
Console::WriteLine("Original membership condition = ");
Console::WriteLine(Gac1->ToXml());
try
{
IMembershipCondition^ membershipCondition = Gac1->Copy();
Console::WriteLine("Result of Copy = ");
Console::WriteLine(
(dynamic_cast<GacMembershipCondition^>(membershipCondition))
->ToXml());
}
catch (Exception^ e)
{
Console::WriteLine("Copy failed : {0}{1}", Gac1, e);
return false;
}
return true;
}
// Demonstrate the Check method, which determines whether the specified
// evidence satisfies the membership condition.
bool CheckDemo()
{
Console::WriteLine(
"************************************************************");
GacMembershipCondition ^ Gac1 = gcnew GacMembershipCondition;
GacInstalled ^ myGac = gcnew GacInstalled;
try
{
array<Object^>^hostEvidence = {myGac};
array<Object^>^assemblyEvidence = {};
Evidence^ myEvidence =
gcnew Evidence(hostEvidence,assemblyEvidence);
bool retCode = Gac1->Check(myEvidence);
Console::WriteLine("Result of Check = {0}\n", retCode);
}
catch (Exception^ e)
{
Console::WriteLine("Check failed : {0}{1}", Gac1, e);
return false;
}
return true;
}
// Demonstrate the GetHashCode method, which returns a hash code
// for the specified membership condition.
bool GetHashCodeDemo()
{
Console::WriteLine(
"************************************************************");
GacMembershipCondition ^ Gac1 = gcnew GacMembershipCondition;
try
{
Console::WriteLine(
"Result of GetHashCode for a GacMembershipCondition = {0}\n",
Gac1->GetHashCode());
}
catch (Exception^ e)
{
Console::WriteLine("GetHashCode failed : {0}{1}", Gac1, e);
return false;
}
return true;
}
// Demonstrate the ToXml and FromXml methods, including the overloads.
// ToXml creates an XML encoding of the membership condition and its
// current state; FromXml reconstructs a membership condition with the
// specified state from the XML encoding.
bool ToFromXmlDemo()
{
Console::WriteLine(
"************************************************************");
try
{
GacMembershipCondition ^ Gac1 = gcnew GacMembershipCondition;
GacMembershipCondition ^ Gac2 = gcnew GacMembershipCondition;
// Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2->FromXml(Gac1->ToXml());
bool result = Gac2->Equals(Gac1);
if (result)
{
Console::WriteLine("Result of ToXml() = {0}", Gac2->ToXml());
Console::WriteLine(
"Result of ToFromXml roundtrip = {0}", Gac2);
}
else
{
Console::WriteLine(Gac2->ToString());
Console::WriteLine(Gac1->ToString());
return false;
}
GacMembershipCondition ^ Gac3 = gcnew GacMembershipCondition;
GacMembershipCondition ^ Gac4 = gcnew GacMembershipCondition;
IEnumerator^ policyEnumerator = SecurityManager::PolicyHierarchy();
while (policyEnumerator->MoveNext())
{
PolicyLevel^ currentLevel =
dynamic_cast<PolicyLevel^>(policyEnumerator->Current);
if (currentLevel->Label->Equals("Machine"))
{
Console::WriteLine("Result of ToXml(level) = {0}",
Gac3->ToXml(currentLevel));
Gac4->FromXml(Gac3->ToXml(), currentLevel);
Console::WriteLine(
"Result of FromXml(element, level) = {0}", Gac4);
}
}
}
catch (Exception^ e)
{
Console::WriteLine("ToFromXml failed. {0}", e);
return false;
}
return true;
}
public:
// Invoke all demos.
bool RunDemo()
{
bool returnCode = true;
bool tempReturnCode;
// Call the Copy demo.
if (tempReturnCode = CopyDemo())
Console::WriteLine("Copy demo completed successfully.");
else
Console::WriteLine("Copy demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the Check demo.
if (tempReturnCode = CheckDemo())
Console::WriteLine("Check demo completed successfully.");
else
Console::WriteLine("Check demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the GetHashCode demo.
if (tempReturnCode = GetHashCodeDemo())
Console::WriteLine("GetHashCode demo completed successfully.");
else
Console::WriteLine("GetHashCode demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the ToFromXml demo.
if (tempReturnCode = ToFromXmlDemo())
Console::WriteLine("ToFromXml demo completed successfully.");
else
Console::WriteLine("ToFromXml demo failed.");
returnCode = tempReturnCode && returnCode;
return (returnCode);
}
};
// Test harness.
int main()
{
try
{
GacMembershipConditionDemo^ testcase =
gcnew GacMembershipConditionDemo;
bool returnCode = testcase->RunDemo();
if (returnCode)
{
Console::WriteLine(
"The GacMembershipCondition demo completed successfully.");
Console::WriteLine("Press the Enter key to exit.");
Console::ReadLine();
System::Environment::ExitCode = 100;
}
else
{
Console::WriteLine("The GacMembershipCondition demo failed.");
Console::WriteLine("Press the ENTER key to exit.");
Console::ReadLine();
System::Environment::ExitCode = 101;
}
}
catch (Exception^ e)
{
Console::WriteLine("The GacIdentityPermission demo failed.");
Console::WriteLine(e);
Console::WriteLine("Press the Enter key to exit.");
Console::ReadLine();
System::Environment::ExitCode = 101;
}
}
using System;
using System.Security;
using System.Security.Policy;
using System.Collections;
public class GacMembershipConditionDemo
{
// Demonstrate the Copy method, which creates an identical
// copy of the current permission.
private bool CopyDemo()
{
Console.WriteLine(
"************************************************************");
GacMembershipCondition Gac1 = new GacMembershipCondition();
Console.WriteLine("Original membership condition = ");
Console.WriteLine(Gac1.ToXml().ToString());
try
{
IMembershipCondition membershipCondition = Gac1.Copy();
Console.WriteLine("Result of Copy = ");
Console.WriteLine(
((GacMembershipCondition)membershipCondition).ToXml().ToString()
);
}
catch (Exception e)
{
Console.WriteLine("Copy failed : " + Gac1.ToString() + e);
return false;
}
return true;
}
// Demonstrate the Check method, which determines whether the specified
// evidence satisfies the membership condition.
private bool CheckDemo()
{
Console.WriteLine(
"************************************************************");
GacMembershipCondition Gac1 = new GacMembershipCondition();
GacInstalled myGac = new GacInstalled();
try
{
Object [] hostEvidence = {myGac};
Object [] assemblyEvidence = {};
Evidence myEvidence = new Evidence(hostEvidence,assemblyEvidence);
bool retCode = Gac1.Check(myEvidence);
Console.WriteLine("Result of Check = " + retCode.ToString() + "\n");
}
catch (Exception e)
{
Console.WriteLine("Check failed : " + Gac1.ToString() + e);
return false;
}
return true;
}
// Demonstrate the GetHashCode method, which returns a hash code
// for the specified membership condition.
private bool GetHashCodeDemo()
{
Console.WriteLine(
"************************************************************");
GacMembershipCondition Gac1 = new GacMembershipCondition();
try
{
Console.WriteLine(
"Result of GetHashCode for a GacMembershipCondition = " +
Gac1.GetHashCode().ToString() + "\n");
}
catch (Exception e)
{
Console.WriteLine("GetHashCode failed : " + Gac1.ToString() + e);
return false;
}
return true;
}
// Demonstrate the ToXml and FromXml methods, including the overloads.
// ToXml creates an XML encoding of the membership condition and its
// current state; FromXml reconstructs a membership condition with the
// specified state from the XML encoding.
private bool ToFromXmlDemo()
{
Console.WriteLine(
"************************************************************");
try
{
GacMembershipCondition Gac1 = new GacMembershipCondition();
GacMembershipCondition Gac2 = new GacMembershipCondition();
// Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2.FromXml(Gac1.ToXml());
bool result = Gac2.Equals(Gac1);
if (result)
{
Console.WriteLine(
"Result of ToXml() = " + Gac2.ToXml().ToString());
Console.WriteLine(
"Result of ToFromXml roundtrip = " + Gac2.ToString());
}
else
{
Console.WriteLine(Gac2.ToString());
Console.WriteLine(Gac1.ToString());
return false;
}
GacMembershipCondition Gac3 = new GacMembershipCondition();
GacMembershipCondition Gac4 = new GacMembershipCondition();
IEnumerator policyEnumerator = SecurityManager.PolicyHierarchy();
while (policyEnumerator.MoveNext())
{
PolicyLevel currentLevel =
(PolicyLevel)policyEnumerator.Current;
if (currentLevel.Label == "Machine")
{
Console.WriteLine("Result of ToXml(level) = " +
Gac3.ToXml(currentLevel));
Gac4.FromXml(Gac3.ToXml(), currentLevel);
Console.WriteLine("Result of FromXml(element, level) = " +
Gac4.ToString());
}
}
}
catch (Exception e)
{
Console.WriteLine("ToFromXml failed. " + e);
return false;
}
return true;
}
// Invoke all demos.
public bool RunDemo()
{
bool returnCode =true;
bool tempReturnCode;
// Call the Copy demo.
if (tempReturnCode = CopyDemo())
Console.Out.WriteLine("Copy demo completed successfully.");
else
Console.Out.WriteLine("Copy demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the Check demo.
if (tempReturnCode = CheckDemo())
Console.Out.WriteLine("Check demo completed successfully.");
else
Console.Out.WriteLine("Check demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the GetHashCode demo.
if (tempReturnCode = GetHashCodeDemo())
Console.Out.WriteLine("GetHashCode demo completed successfully.");
else
Console.Out.WriteLine("GetHashCode demo failed.");
returnCode = tempReturnCode && returnCode;
// Call the ToFromXml demo.
if (tempReturnCode = ToFromXmlDemo())
Console.Out.WriteLine("ToFromXml demo completed successfully.");
else
Console.Out.WriteLine("ToFromXml demo failed.");
returnCode = tempReturnCode && returnCode;
return (returnCode);
}
// Test harness.
public static void Main(String[] args)
{
try
{
GacMembershipConditionDemo testcase =
new GacMembershipConditionDemo();
bool returnCode = testcase.RunDemo();
if (returnCode)
{
Console.Out.WriteLine(
"The GacMembershipCondition demo completed successfully.");
Console.Out.WriteLine("Press the Enter key to exit.");
string consoleInput = Console.ReadLine();
System.Environment.ExitCode = 100;
}
else
{
Console.Out.WriteLine("The GacMembershipCondition demo failed.");
Console.Out.WriteLine("Press the ENTER key to exit.");
string consoleInput = Console.ReadLine();
System.Environment.ExitCode = 101;
}
}
catch (Exception e)
{
Console.Out.WriteLine("The GacIdentityPermission demo failed.");
Console.WriteLine(e.ToString());
Console.Out.WriteLine("Press the Enter key to exit.");
string consoleInput = Console.ReadLine();
System.Environment.ExitCode = 101;
}
}
}
Imports System.Security
Imports System.Security.Policy
Imports System.Collections
Public Class GacMembershipConditionDemo
' Demonstrate the Copy method, which creates an identical
' copy of the current permission.
Private Function CopyDemo() As Boolean
Console.WriteLine( _
"*************************************************************")
Dim Gac1 As New GacMembershipCondition
Console.WriteLine("Original membership condition = ")
Console.WriteLine(Gac1.ToXml().ToString())
Try
Dim membershipCondition As IMembershipCondition = Gac1.Copy()
Console.WriteLine("Result of Copy = ")
Console.WriteLine(CType(membershipCondition, _
GacMembershipCondition).ToXml().ToString())
Catch e As Exception
Console.WriteLine(("Copy failed : " & Gac1.ToString() & _
e.ToString()))
Return False
End Try
Return True
End Function 'CopyDemo
' Demonstrate the Check method, which determines whether the specified
' evidence satisfies the membership condition.
Private Function CheckDemo() As Boolean
Console.WriteLine( _
"*************************************************************")
Dim Gac1 As New GacMembershipCondition
Dim myGac As New GacInstalled
Try
Dim hostEvidence() As Object = {myGac}
Dim assemblyEvidence() As Object
Dim myEvidence As New Evidence(hostEvidence, assemblyEvidence)
Dim retCode As Boolean = Gac1.Check(myEvidence)
Console.WriteLine(("Result of Check = " & retCode.ToString() _
& ControlChars.Lf))
Catch e As Exception
Console.WriteLine(("Check failed : " & Gac1.ToString() & _
e.ToString()))
Return False
End Try
Return True
End Function 'CheckDemo
' Demonstrate the GetHashCode method, which returns a hash code
' for the specified membership condition.
Private Function GetHashCodeDemo() As Boolean
Console.WriteLine( _
"*************************************************************")
Dim Gac1 As New GacMembershipCondition
Try
Console.WriteLine( _
("Result of GetHashCode for a GacMembershipCondition = " _
& Gac1.GetHashCode().ToString() & ControlChars.Lf))
Catch e As Exception
Console.WriteLine(("GetHashCode failed : " & _
Gac1.ToString() & e.ToString()))
Return False
End Try
Return True
End Function 'GetHashCodeDemo
'Demonstrate the ToXml and FromXml methods, including the overloads.
' ToXml creates an XML encoding of the membership condition and its
' current state; FromXml reconstructs a membership condition with the
' specified state from the XML encoding.
Private Function ToFromXmlDemo() As Boolean
Console.WriteLine( _
"*************************************************************")
Try
Dim Gac1 As New GacMembershipCondition
Dim Gac2 As New GacMembershipCondition
' Roundtrip a GacMembershipCondition to and from an XML encoding.
Gac2.FromXml(Gac1.ToXml())
Dim result As Boolean = Gac2.Equals(Gac1)
If result Then
Console.WriteLine(("Result of ToXml() = " & _
Gac2.ToXml().ToString()))
Console.WriteLine(("Result of ToFromXml roundtrip = " & _
Gac2.ToString()))
Else
Console.WriteLine(Gac2.ToString())
Console.WriteLine(Gac1.ToString())
Return False
End If
Dim Gac3 As New GacMembershipCondition
Dim Gac4 As New GacMembershipCondition
Dim policyEnumerator As IEnumerator = _
SecurityManager.PolicyHierarchy()
While policyEnumerator.MoveNext()
Dim currentLevel As PolicyLevel = _
CType(policyEnumerator.Current, PolicyLevel)
If currentLevel.Label = "Machine" Then
Console.WriteLine(("Result of ToXml(level) = " & _
Gac3.ToXml(currentLevel).ToString()))
Gac4.FromXml(Gac3.ToXml(), currentLevel)
Console.WriteLine(("Result of FromXml(element, level) = " _
& Gac4.ToString()))
End If
End While
Catch e As Exception
Console.WriteLine(("ToFromXml failed. " & e.ToString()))
Return False
End Try
Return True
End Function 'ToFromXmlDemo
' Invoke all demos.
Public Function RunDemo() As Boolean
Dim returnCode As Boolean = True
Dim tempReturnCode As Boolean
' Call the Copy demo.
tempReturnCode = CopyDemo()
If tempReturnCode = True Then
Console.Out.WriteLine("Copy demo completed successfully.")
Else
Console.Out.WriteLine("Copy demo failed.")
End If
returnCode = tempReturnCode AndAlso returnCode
' Call the Check demo.
tempReturnCode = CheckDemo()
If tempReturnCode = True Then
Console.Out.WriteLine("Check demo completed successfully.")
Else
Console.Out.WriteLine("Check demo failed.")
End If
returnCode = tempReturnCode AndAlso returnCode
' Call the GetHashCode demo.
tempReturnCode = GetHashCodeDemo()
If tempReturnCode = True Then
Console.Out.WriteLine("GetHashCode demo completed successfully.")
Else
Console.Out.WriteLine("GetHashCode demo failed.")
End If
returnCode = tempReturnCode AndAlso returnCode
' Call the ToFromXml demo.
tempReturnCode = ToFromXmlDemo()
If tempReturnCode = True Then
Console.Out.WriteLine("ToFromXml demo completed successfully.")
Else
Console.Out.WriteLine("ToFromXml demo failed.")
End If
returnCode = tempReturnCode AndAlso returnCode
Return returnCode
End Function 'RunDemo
' Test harness.
Public Overloads Shared Sub Main(ByVal args() As [String])
Try
Dim testcase As New GacMembershipConditionDemo
Dim returnCode As Boolean = testcase.RunDemo()
If returnCode Then
Console.Out.WriteLine( _
"The GacMembershipCondition demo completed successfully.")
Console.Out.WriteLine("Press the Enter key to exit.")
Dim consoleInput As String = Console.ReadLine()
System.Environment.ExitCode = 100
Else
Console.Out.WriteLine("The GacMembershipCondition demo failed.")
Console.Out.WriteLine("Press the ENTER key to exit.")
Dim consoleInput As String = Console.ReadLine()
System.Environment.ExitCode = 101
End If
Catch e As Exception
Console.Out.WriteLine("The GacIdentityPermission demo failed.")
Console.WriteLine(e.ToString())
Console.Out.WriteLine("Press the Enter key to exit.")
Dim consoleInput As String = Console.ReadLine()
System.Environment.ExitCode = 101
End Try
End Sub
End Class
설명
전역 어셈블리 캐시에 설치된 모든 어셈블리에는 사용 권한 집합이 FullTrust
부여됩니다.
생성자
GacMembershipCondition() |
GacMembershipCondition 클래스의 새 인스턴스를 초기화합니다. |
메서드
Check(Evidence) |
지정된 증명 정보가 멤버 자격 조건에 맞는지 여부를 나타냅니다. |
Copy() |
멤버 자격 조건의 동일한 복사본을 만듭니다. |
Equals(Object) |
현재 개체가 지정된 개체와 같은지 여부를 나타냅니다. |
FromXml(SecurityElement) |
지정된 XML 인코딩을 사용하여 보안 개체를 다시 생성합니다. |
FromXml(SecurityElement, PolicyLevel) |
지정된 XML 인코딩을 사용하여 지정된 정책 수준 컨텍스트로 보안 개체를 다시 생성합니다. |
GetHashCode() |
현재 멤버 자격 조건에 대한 해시 코드를 가져옵니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
멤버 자격 조건의 문자열 표현을 반환합니다. |
ToXml() |
보안 개체 및 현재 상태의 XML 인코딩을 만듭니다. |
ToXml(PolicyLevel) |
지정된 정책 수준 컨텍스트를 사용하여 보안 개체 및 해당 보안 개체의 현재 상태에 대한 XML 인코딩을 만듭니다. |
적용 대상
.NET