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 編碼和它的目前狀態。 |