PolicyStatement クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class PolicyStatement Implements ISecurityEncodable, ISecurityPolicyEncodable
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class PolicyStatement : ISecurityEncodable, ISecurityPolicyEncodable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class PolicyStatement sealed : ISecurityEncodable, ISecurityPolicyEncodable


PolicyStatement クラスのメンバを使用する方法を次のコード例に示します。
Imports System Imports System.Security Imports System.Security.Policy Imports System.Security.Principal Imports System.Security.Permissions Public Class Form1 Inherits System.Windows.Forms.Form ' Event handler for Run button. Private Sub Button1_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click tbxOutput.Cursor = Cursors.WaitCursor tbxOutput.Text = "" Dim policyStatement As PolicyStatement = firstConstructorTest() Dim policyStatement2 As PolicyStatement = secondConstructorTest() ' Add attributes to policy statement. policyStatement.Attributes = PolicyStatementAttribute.All Dim policyStatementCopy As PolicyStatement policyStatementCopy = createCopy(policyStatement) addXmlMember(policyStatementCopy) summarizePolicyStatment(policyStatement) ' Align interface and conclude application. tbxOutput.AppendText(vbCrLf + "This sample completed " + _ "successfully; press Exit to continue.") tbxOutput.Cursor = Cursors.Default End Sub ' Construct a PolicyStatement with an Unrestricted permission set. Private Function firstConstructorTest() As PolicyStatement ' Construct policy statement based on newly created permission set. ' Assemble permission set. Dim permissions As New PermissionSet(PermissionState.Unrestricted) permissions.AddPermission( _ New SecurityPermission(SecurityPermissionFlag.Execution)) permissions.AddPermission( _ New ZoneIdentityPermission(SecurityZone.MyComputer)) ' Instantiate a new policy statement with specified permission set. Dim policyStatement As New PolicyStatement(permissions) Return PolicyStatement End Function ' Construct a PolicyStatement with an Unrestricted permission set with ' the LevelFinal attribute. Private Function secondConstructorTest() As PolicyStatement ' Construct policy statement based on newly created permission set. ' Assemble permission set. Dim permissions As New PermissionSet(PermissionState.Unrestricted) permissions.AddPermission( _ New SecurityPermission(SecurityPermissionFlag.Execution)) permissions.AddPermission( _ New ZoneIdentityPermission(SecurityZone.MyComputer)) Dim levelFinalAttribute As PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute.LevelFinal ' Instantiate a new policy statement with specified permission set ' and the LevelFinal attibute set allowing lower policy levels to be ' avoided in a resolve. Dim policyStatement As _ New PolicyStatement(permissions, levelFinalAttribute) Return policyStatement End Function ' Add named permission set to specified PolicyStatement. Private Sub AddPermissions(ByRef policyStatement As PolicyStatement) ' Set up a NamedPermissionSet with all permissions. Dim allPerms As New NamedPermissionSet("allPerms") allPerms.AddPermission( _ New SecurityPermission(SecurityPermissionFlag.Execution)) allPerms.AddPermission( _ New ZoneIdentityPermission(SecurityZone.MyComputer)) allPerms.AddPermission( _ New SiteIdentityPermission("www.contoso.com")) policyStatement.PermissionSet = allPerms End Sub ' If the class attribute is not found in specified PolicyStatement , ' add a child XML element with an added class attribute. Private Sub addXmlMember(ByRef policyStatement As PolicyStatement) Dim xmlElement As SecurityElement = policyStatement.ToXml() If (xmlElement.Attribute("class") Is Nothing) Then Dim newElement As New SecurityElement("PolicyStatement") newElement.AddAttribute("class", policyStatement.ToString()) newElement.AddAttribute("version", "1.1") newElement.AddChild(New SecurityElement("PermissionSet")) policyStatement.FromXml(newElement) tbxOutput.AppendText("Added the class attribute and modified the") tbxOutput.AppendText(" version number." + vbCrLf) tbxOutput.AppendText(newElement.ToString() + vbCrLf) End If End Sub ' Verify specified object is a PolicyStatement type. Retrieve a copy ' using the private getCopy method. Private Function createCopy( _ ByVal sourceObject As Object) As PolicyStatement Dim returnedStatement = New PolicyStatement(Nothing) ' Compare specified object's type with the PolicyStatement type. If (sourceObject.GetType() Is GetType(PolicyStatement)) Then returnedStatement = getCopy(CType(sourceObject, PolicyStatement)) Else Throw New ArgumentException("Excepted PolicyStatement type.") End If Return returnedStatement End Function ' Return a copy of the specified PolicyStatement if the result of the ' Copy command results in an equivalent object. Otherwise, return the ' original object. Private Function getCopy( _ ByVal policyStatement As PolicyStatement) As PolicyStatement ' Create an equivalent copy of the policy statement. Dim policyStatementCopy As PolicyStatement = policyStatement.Copy() ' Compare the specified objects for equality. If (Not policyStatementCopy.Equals(policyStatement)) Then Return policyStatementCopy Else Return policyStatement End If End Function ' Summarize the specified PolicyStatement to the console window. Private Sub summarizePolicyStatment( _ ByVal policyStatement As PolicyStatement) ' Retrieve the class path for policyStatement. Dim policyStatementClass As String = policyStatement.ToString() Dim hashCode As Integer = policyStatement.GetHashCode() Dim attributeString As String = "" ' Retrieve the string representation of the Policy's attributes. If (Not policyStatement.AttributeString Is Nothing) Then attributeString = policyStatement.AttributeString End If ' Write summary to console window. tbxOutput.AppendText("*** " + policyStatementClass + " summary ***") tbxOutput.AppendText(vbCrLf) tbxOutput.AppendText("PolicyStatement has been created with hash ") tbxOutput.AppendText("code(" + hashCode.ToString() + ") ") tbxOutput.AppendText("containing the following attributes: ") tbxOutput.AppendText(attributeString + vbCrLf) End Sub ' Event handler for Exit button. Private Sub Button2_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Application.Exit() End Sub #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents Panel2 As System.Windows.Forms.Panel Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents tbxOutput As System.Windows.Forms.RichTextBox <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.Panel2 = New System.Windows.Forms.Panel Me.Button1 = New System.Windows.Forms.Button Me.Button2 = New System.Windows.Forms.Button Me.Panel1 = New System.Windows.Forms.Panel Me.tbxOutput = New System.Windows.Forms.RichTextBox Me.Panel2.SuspendLayout() Me.Panel1.SuspendLayout() Me.SuspendLayout() ' 'Panel2 ' Me.Panel2.Controls.Add(Me.Button1) Me.Panel2.Controls.Add(Me.Button2) Me.Panel2.Dock = System.Windows.Forms.DockStyle.Bottom Me.Panel2.DockPadding.All = 20 Me.Panel2.Location = New System.Drawing.Point(0, 320) Me.Panel2.Name = "Panel2" Me.Panel2.Size = New System.Drawing.Size(616, 64) Me.Panel2.TabIndex = 1 ' 'Button1 ' Me.Button1.Dock = System.Windows.Forms.DockStyle.Right Me.Button1.Font = New System.Drawing.Font( _ "Microsoft Sans Serif", _ 9.0!, _ System.Drawing.FontStyle.Regular, _ System.Drawing.GraphicsUnit.Point, _ CType(0, Byte)) Me.Button1.Location = New System.Drawing.Point(446, 20) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 24) Me.Button1.TabIndex = 2 Me.Button1.Text = "&Run" ' 'Button2 ' Me.Button2.Dock = System.Windows.Forms.DockStyle.Right Me.Button2.Font = New System.Drawing.Font( _ "Microsoft Sans Serif", _ 9.0!, _ System.Drawing.FontStyle.Regular, _ System.Drawing.GraphicsUnit.Point, _ CType(0, Byte)) Me.Button2.Location = New System.Drawing.Point(521, 20) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 24) Me.Button2.TabIndex = 3 Me.Button2.Text = "E&xit" ' 'Panel1 ' Me.Panel1.Controls.Add(Me.tbxOutput) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel1.DockPadding.All = 20 Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" Me.Panel1.Size = New System.Drawing.Size(616, 320) Me.Panel1.TabIndex = 2 ' 'tbxOutput ' Me.tbxOutput.AccessibleDescription = _ "Displays output from application." Me.tbxOutput.AccessibleName = "Output textbox." Me.tbxOutput.Dock = System.Windows.Forms.DockStyle.Fill Me.tbxOutput.Location = New System.Drawing.Point(20, 20) Me.tbxOutput.Name = "tbxOutput" Me.tbxOutput.Size = New System.Drawing.Size(576, 280) Me.tbxOutput.TabIndex = 1 Me.tbxOutput.Text = "Click the Run button to run the application." ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(6, 15) Me.ClientSize = New System.Drawing.Size(616, 384) Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.Panel2) Me.Name = "Form1" Me.Text = "PolicyStatement" Me.Panel2.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.ResumeLayout(False) End Sub #End Region End Class ' ' This sample produces the following output: ' ' Added the class attribute and modified the version number. ' <PolicyStatement class="System.Security.Policy.PolicyStatement" ' version="1.1"> ' <PermissionSet/> ' </PolicyStatement> ' ' *** System.Security.Policy.PolicyStatement summary *** ' PolicyStatement has been created with hash code(20) containing the following ' attributes: Exclusive LevelFinal ' ' This sample completed successfully; press Exit to continue
using System; using System.Security; using System.Security.Policy; using System.Security.Principal; using System.Security.Permissions; class Members { [STAThread] static void Main(string[] args) { // Create two new policy statements. PolicyStatement policyStatement = firstConstructorTest(); PolicyStatement policyStatement2 = secondConstructorTest(); // Add attributes to the first policy statement. policyStatement.Attributes = PolicyStatementAttribute.All; // Create a copy of the first policy statement. PolicyStatement policyStatementCopy = createCopy(policyStatement); addXmlMember(ref policyStatementCopy); summarizePolicyStatment(policyStatement); Console.WriteLine("This sample completed successfully; " + "press Enter to exit."); Console.ReadLine(); } // Construct a PolicyStatement with an Unrestricted permission set. private static PolicyStatement firstConstructorTest() { // Construct the permission set. PermissionSet permissions = new PermissionSet(PermissionState.Unrestricted); permissions.AddPermission( new SecurityPermission(SecurityPermissionFlag.Execution)); permissions.AddPermission( new ZoneIdentityPermission(SecurityZone.MyComputer)); // Create a policy statement based on the newly created permission // set. PolicyStatement policyStatement = new PolicyStatement(permissions); return policyStatement; } // Construct a PolicyStatement with an Unrestricted permission set and // the LevelFinal attribute. private static PolicyStatement secondConstructorTest() { // Construct the permission set. PermissionSet permissions = new PermissionSet(PermissionState.Unrestricted); permissions.AddPermission( new SecurityPermission(SecurityPermissionFlag.Execution)); permissions.AddPermission( new ZoneIdentityPermission(SecurityZone.MyComputer)); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute.LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement policyStatement = new PolicyStatement(permissions, levelFinalAttribute); return policyStatement; } // Add a named permission set to the specified PolicyStatement. private static void AddPermissions(ref PolicyStatement policyStatement) { // Construct a NamedPermissionSet with basic permissions. NamedPermissionSet allPerms = new NamedPermissionSet("allPerms"); allPerms.AddPermission( new SecurityPermission(SecurityPermissionFlag.Execution)); allPerms.AddPermission( new ZoneIdentityPermission(SecurityZone.MyComputer)); allPerms.AddPermission( new SiteIdentityPermission("www.contoso.com")); policyStatement.PermissionSet = allPerms; } // If a class attribute is not found in the specified PolicyStatement , // add a child XML element with an added class attribute. private static void addXmlMember(ref PolicyStatement policyStatement) { SecurityElement xmlElement = policyStatement.ToXml(); if (xmlElement.Attribute("class") == null) { SecurityElement newElement = new SecurityElement("PolicyStatement"); newElement.AddAttribute("class", policyStatement.ToString()); newElement.AddAttribute("version","1.1"); newElement.AddChild(new SecurityElement("PermissionSet")); policyStatement.FromXml(newElement); Console.Write("Added the class attribute and modified its "); Console.WriteLine("version number.\n" + newElement.ToString()); } } // Verify that the type of the specified object is a PolicyStatement type // then create a copy of the object. private static PolicyStatement createCopy(Object sourceObject) { PolicyStatement returnedStatement = new PolicyStatement(null); // Compare specified object type with the PolicyStatement type. if (sourceObject.GetType().Equals(typeof(PolicyStatement))) { returnedStatement = getCopy((PolicyStatement)sourceObject); } else { throw new ArgumentException("Expected the PolicyStatement type."); } return returnedStatement; } // Return a copy of the specified PolicyStatement if the result of the // Copy command is an equivalent object. Otherwise, return the // original PolicyStatement object. private static PolicyStatement getCopy(PolicyStatement policyStatement) { // Create an equivalent copy of the policy statement. PolicyStatement policyStatementCopy = policyStatement.Copy(); // Compare the specified objects for equality. if (!policyStatementCopy.Equals(policyStatement)) { return policyStatementCopy; } else { return policyStatement; } } // Summarize the attributes of the specified PolicyStatement on the // console window. private static void summarizePolicyStatment( PolicyStatement policyStatement) { // Retrieve the class path for policyStatement. string policyStatementClass = policyStatement.ToString(); int hashCode = policyStatement.GetHashCode(); string attributeString = ""; // Retrieve the string representation of the PolicyStatement // attributes. if (policyStatement.AttributeString != null) { attributeString = policyStatement.AttributeString; } // Write a summary to the console window. Console.WriteLine("\n*** " + policyStatementClass + " summary ***"); Console.Write("This PolicyStatement has been created with hash "); Console.Write("code(" + hashCode + ") "); Console.Write("and contains the following attributes: "); Console.WriteLine(attributeString); } } // // This sample produces the following output: // // Added the class attribute and modified the version number. // <PolicyStatement class="System.Security.Policy.PolicyStatement" // version="1.1"> // <PermissionSet/> // </PolicyStatement> // // *** System.Security.Policy.PolicyStatement summary *** // PolicyStatement has been created with hash code(20) containing the // following attributes: Exclusive LevelFinal // This sample completed successfully; press Enter to exit.
using namespace System; using namespace System::Security; using namespace System::Security::Policy; using namespace System::Security::Principal; using namespace System::Security::Permissions; ref class Members { public: [STAThread] static void Main() { // Create two new policy statements. PolicyStatement^ policyStatement = firstConstructorTest(); PolicyStatement^ policyStatement2 = secondConstructorTest(); // Add attributes to the first policy statement. policyStatement->Attributes = PolicyStatementAttribute::All; // Create a copy of the first policy statement. PolicyStatement^ policyStatementCopy = createCopy( policyStatement ); addXmlMember( &policyStatementCopy ); summarizePolicyStatment( policyStatement ); Console::Write( L"This sample completed successfully; " ); Console::WriteLine( L"press Enter to exit." ); Console::ReadLine(); } private: // Construct a PolicyStatement with an Unrestricted permission set. static PolicyStatement^ firstConstructorTest() { // Construct the permission set. PermissionSet^ permissions = gcnew PermissionSet( PermissionState::Unrestricted ); permissions->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); permissions->AddPermission( gcnew ZoneIdentityPermission( SecurityZone::MyComputer ) ); // Create a policy statement based on the newly created permission // set. PolicyStatement^ policyStatement = gcnew PolicyStatement( permissions ); return policyStatement; } // Construct a PolicyStatement with an Unrestricted permission set and // the LevelFinal attribute. static PolicyStatement^ secondConstructorTest() { // Construct the permission set. PermissionSet^ permissions = gcnew PermissionSet( PermissionState::Unrestricted ); permissions->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); permissions->AddPermission( gcnew ZoneIdentityPermission( SecurityZone::MyComputer ) ); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute::LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement^ policyStatement = gcnew PolicyStatement( permissions,levelFinalAttribute ); return policyStatement; } // Add a named permission set to the specified PolicyStatement. static void AddPermissions( interior_ptr<PolicyStatement^>policyStatement ) { // Construct a NamedPermissionSet with basic permissions. NamedPermissionSet^ allPerms = gcnew NamedPermissionSet( L"allPerms" ); allPerms->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); allPerms->AddPermission( gcnew ZoneIdentityPermission( SecurityZone::MyComputer ) ); allPerms->AddPermission( gcnew SiteIdentityPermission( L"www.contoso.com" ) ); ( *policyStatement)->PermissionSet = allPerms; } // If a class attribute is not found in the specified PolicyStatement , // add a child XML element with an added class attribute. static void addXmlMember( interior_ptr<PolicyStatement^>policyStatement ) { SecurityElement^ xmlElement = ( *policyStatement)->ToXml(); if ( xmlElement->Attribute(L"class") == nullptr ) { SecurityElement^ newElement = gcnew SecurityElement( L"PolicyStatement" ); newElement->AddAttribute( L"class", ( *policyStatement)->ToString() ); newElement->AddAttribute( L"version", L"1.1" ); newElement->AddChild( gcnew SecurityElement( L"PermissionSet" ) ); ( *policyStatement)->FromXml( newElement ); Console::Write( L"Added the class attribute and modified its " ); Console::WriteLine( L"version number.\n{0}", newElement ); } } // Verify that the type of the specified object is a PolicyStatement type // then create a copy of the object. static PolicyStatement^ createCopy( Object^ sourceObject ) { PolicyStatement^ returnedStatement = gcnew PolicyStatement( nullptr ); // Compare specified object type with the PolicyStatement type. if ( sourceObject->GetType()->Equals( PolicyStatement::typeid ) ) { returnedStatement = getCopy( static_cast<PolicyStatement^>(sourceObject) ); } else { throw gcnew ArgumentException( L"Expected the PolicyStatement type." ); } return returnedStatement; } // Return a copy of the specified PolicyStatement if the result of the // Copy command is an equivalent object. Otherwise, return the // original PolicyStatement object. static PolicyStatement^ getCopy( PolicyStatement^ policyStatement ) { // Create an equivalent copy of the policy statement. PolicyStatement^ policyStatementCopy = policyStatement->Copy(); // Compare the specified objects for equality. if ( !policyStatementCopy->Equals( policyStatement ) ) { return policyStatementCopy; } else { return policyStatement; } } // Summarize the attributes of the specified PolicyStatement on the // console window. static void summarizePolicyStatment( PolicyStatement^ policyStatement ) { // Retrieve the class path for policyStatement. String^ policyStatementClass = policyStatement->ToString(); int hashCode = policyStatement->GetHashCode(); String^ attributeString = L""; // Retrieve the string representation of the PolicyStatement // attributes. if ( policyStatement->AttributeString != nullptr ) { attributeString = policyStatement->AttributeString; } // Write a summary to the console window. Console::WriteLine( L"\n*** {0} summary ***", policyStatementClass ); Console::Write( L"This PolicyStatement has been created with hash " ); Console::Write( L"code({0}) ", hashCode ); Console::Write( L"and contains the following attributes: " ); Console::WriteLine( attributeString ); } }; int main() { Members::Main(); } // // This sample produces the following output: // // Added the class attribute and modified the version number. // <PolicyStatement class="System.Security.Policy.PolicyStatement" // version="1.1"> // <PermissionSet/> // </PolicyStatement> // // *** System.Security.Policy.PolicyStatement summary *** // PolicyStatement has been created with hash code(20) containing the // following attributes: Exclusive LevelFinal // This sample completed successfully; press Enter to exit.
import System.*; import System.Security.*; import System.Security.Policy.*; import System.Security.Principal.*; import System.Security.Permissions.*; class Members { /** @attribute STAThread() */ public static void main(String[] args) { // Create two new policy statements. PolicyStatement policyStatement = FirstConstructorTest(); PolicyStatement policyStatement2 = SecondConstructorTest(); // Add attributes to the first policy statement. policyStatement.set_Attributes(PolicyStatementAttribute.All); // Create a copy of the first policy statement. PolicyStatement policyStatementCopy = CreateCopy(policyStatement); AddXmlMember(policyStatementCopy); summarizePolicyStatment(policyStatement); Console.WriteLine("This sample completed successfully; " + "press Enter to exit."); Console.ReadLine(); } //main // Construct a PolicyStatement with an Unrestricted permission set. private static PolicyStatement FirstConstructorTest() { // Construct the permission set. PermissionSet permissions = new PermissionSet(PermissionState. Unrestricted); permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag. Execution)); permissions.AddPermission(new ZoneIdentityPermission(SecurityZone. MyComputer)); // Create a policy statement based on the newly created permission // set. PolicyStatement policyStatement = new PolicyStatement(permissions); return policyStatement; } //FirstConstructorTest // Construct a PolicyStatement with an Unrestricted permission set and // the LevelFinal attribute. private static PolicyStatement SecondConstructorTest() { // Construct the permission set. PermissionSet permissions = new PermissionSet(PermissionState. Unrestricted); permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag. Execution)); permissions.AddPermission(new ZoneIdentityPermission(SecurityZone. MyComputer)); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute. LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement policyStatement = new PolicyStatement(permissions , levelFinalAttribute); return policyStatement; } //SecondConstructorTest // Add a named permission set to the specified PolicyStatement. private static void AddPermissions(PolicyStatement policyStatement) { // Construct a NamedPermissionSet with basic permissions. NamedPermissionSet allPerms = new NamedPermissionSet("allPerms"); allPerms.AddPermission(new SecurityPermission(SecurityPermissionFlag. Execution)); allPerms.AddPermission(new ZoneIdentityPermission(SecurityZone. MyComputer)); allPerms.AddPermission(new SiteIdentityPermission("www.contoso.com")); policyStatement.set_PermissionSet(allPerms); } //AddPermissions // If a class attribute is not found in the specified PolicyStatement , // add a child XML element with an added class attribute. private static void AddXmlMember(PolicyStatement policyStatement) { SecurityElement xmlElement = policyStatement.ToXml(); if (xmlElement.Attribute("class") == null) { SecurityElement newElement = new SecurityElement("PolicyStatement"); newElement.AddAttribute("class", policyStatement.ToString()); newElement.AddAttribute("version", "1.1"); newElement.AddChild(new SecurityElement("PermissionSet")); policyStatement.FromXml(newElement); Console.Write("Added the class attribute and modified its "); Console.WriteLine("version number.\n" + newElement.ToString()); } } //AddXmlMember // Verify that the type of the specified object is a PolicyStatement type // then create a copy of the object. private static PolicyStatement CreateCopy(Object sourceObject) { PolicyStatement returnedStatement = new PolicyStatement(null); // Compare specified object type with the PolicyStatement type. if (sourceObject.GetType().Equals(PolicyStatement.class.ToType())) { returnedStatement = GetCopy(((PolicyStatement)(sourceObject))); } else { throw new ArgumentException("Expected the PolicyStatement type."); } return returnedStatement; } //CreateCopy // Return a copy of the specified PolicyStatement if the result of the // Copy command is an equivalent object. Otherwise, return the // original PolicyStatement object. private static PolicyStatement GetCopy(PolicyStatement policyStatement) { // Create an equivalent copy of the policy statement. PolicyStatement policyStatementCopy = policyStatement.Copy(); // Compare the specified objects for equality. if (!(policyStatementCopy.Equals(policyStatement))) { return policyStatementCopy; } else { return policyStatement; } } //GetCopy // Summarize the attributes of the specified PolicyStatement on the // console window. private static void summarizePolicyStatment(PolicyStatement policyStatement) { // Retrieve the class path for policyStatement. String policyStatementClass = policyStatement.ToString(); int hashCode = policyStatement.GetHashCode(); String attributeString = ""; // Retrieve the string representation of the PolicyStatement // attributes. if (policyStatement.get_AttributeString() != null) { attributeString = policyStatement.get_AttributeString(); } // Write a summary to the console window. Console.WriteLine("\n*** " + policyStatementClass + " summary ***"); Console.Write("This PolicyStatement has been created with hash "); Console.Write("code(" + hashCode + ") "); Console.Write("and contains the following attributes: "); Console.WriteLine(attributeString); } //summarizePolicyStatment } //Members // // This sample produces the following output: // // Added the class attribute and modified the version number. // <PolicyStatement class="System.Security.Policy.PolicyStatement" // version="1.1"> // <PermissionSet/> // </PolicyStatement> // // *** System.Security.Policy.PolicyStatement summary *** // PolicyStatement has been created with hash code(20) containing the // following attributes: Exclusive LevelFinal // This sample completed successfully; press Enter to exit.

System.Security.Policy.PolicyStatement


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PolicyStatement コンストラクタ (PermissionSet, PolicyStatementAttribute)
アセンブリ: mscorlib (mscorlib.dll 内)

Public Sub New ( _ permSet As PermissionSet, _ attributes As PolicyStatementAttribute _ )
Dim permSet As PermissionSet Dim attributes As PolicyStatementAttribute Dim instance As New PolicyStatement(permSet, attributes)
public PolicyStatement ( PermissionSet permSet, PolicyStatementAttribute attributes )
public: PolicyStatement ( PermissionSet^ permSet, PolicyStatementAttribute attributes )
public PolicyStatement ( PermissionSet permSet, PolicyStatementAttribute attributes )
public function PolicyStatement ( permSet : PermissionSet, attributes : PolicyStatementAttribute )

PolicyStatement コンストラクタを使用する方法を次のコード例に示します。このコード例は、PolicyStatement クラスのトピックで取り上げているコード例の一部分です。
Dim permissions As New PermissionSet(PermissionState.Unrestricted) permissions.AddPermission( _ New SecurityPermission(SecurityPermissionFlag.Execution)) permissions.AddPermission( _ New ZoneIdentityPermission(SecurityZone.MyComputer)) Dim levelFinalAttribute As PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute.LevelFinal ' Instantiate a new policy statement with specified permission set ' and the LevelFinal attibute set allowing lower policy levels to be ' avoided in a resolve. Dim policyStatement As _ New PolicyStatement(permissions, levelFinalAttribute)
PermissionSet permissions = new PermissionSet(PermissionState.Unrestricted); permissions.AddPermission( new SecurityPermission(SecurityPermissionFlag.Execution)); permissions.AddPermission( new ZoneIdentityPermission(SecurityZone.MyComputer)); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute.LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement policyStatement = new PolicyStatement(permissions, levelFinalAttribute);
PermissionSet^ permissions = gcnew PermissionSet( PermissionState::Unrestricted ); permissions->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); permissions->AddPermission( gcnew ZoneIdentityPermission( SecurityZone::MyComputer ) ); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute::LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement^ policyStatement = gcnew PolicyStatement( permissions,levelFinalAttribute );
PermissionSet permissions = new PermissionSet(PermissionState. Unrestricted); permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag. Execution)); permissions.AddPermission(new ZoneIdentityPermission(SecurityZone. MyComputer)); PolicyStatementAttribute levelFinalAttribute = PolicyStatementAttribute. LevelFinal; // Create a new policy statement with the specified permission set. // The LevelFinal attribute is set to prevent the evaluation of lower // policy levels in a resolve operation. PolicyStatement policyStatement = new PolicyStatement(permissions , levelFinalAttribute);

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PolicyStatement コンストラクタ (PermissionSet)
アセンブリ: mscorlib (mscorlib.dll 内)


PolicyStatement コンストラクタを使用する方法を次のコード例に示します。このコード例は、PolicyStatement クラスのトピックで取り上げているコード例の一部分です。
Dim permissions As New PermissionSet(PermissionState.Unrestricted) permissions.AddPermission( _ New SecurityPermission(SecurityPermissionFlag.Execution)) permissions.AddPermission( _ New ZoneIdentityPermission(SecurityZone.MyComputer)) ' Instantiate a new policy statement with specified permission set. Dim policyStatement As New PolicyStatement(permissions)
PermissionSet permissions = new PermissionSet(PermissionState.Unrestricted); permissions.AddPermission( new SecurityPermission(SecurityPermissionFlag.Execution)); permissions.AddPermission( new ZoneIdentityPermission(SecurityZone.MyComputer)); // Create a policy statement based on the newly created permission // set. PolicyStatement policyStatement = new PolicyStatement(permissions);
PermissionSet^ permissions = gcnew PermissionSet( PermissionState::Unrestricted ); permissions->AddPermission( gcnew SecurityPermission( SecurityPermissionFlag::Execution ) ); permissions->AddPermission( gcnew ZoneIdentityPermission( SecurityZone::MyComputer ) ); // Create a policy statement based on the newly created permission // set. PolicyStatement^ policyStatement = gcnew PolicyStatement( permissions );
PermissionSet permissions = new PermissionSet(PermissionState. Unrestricted); permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag. Execution)); permissions.AddPermission(new ZoneIdentityPermission(SecurityZone. MyComputer)); // Create a policy statement based on the newly created permission // set. PolicyStatement policyStatement = new PolicyStatement(permissions);

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PolicyStatement コンストラクタ

名前 | 説明 |
---|---|
PolicyStatement (PermissionSet) | PermissionSet を指定して、PolicyStatement クラスの新しいインスタンスを初期化します。 |
PolicyStatement (PermissionSet, PolicyStatementAttribute) | PermissionSet と属性を指定して、PolicyStatement クラスの新しいインスタンスを初期化します。 |

PolicyStatement プロパティ

名前 | 説明 | |
---|---|---|
![]() | Attributes | ポリシー ステートメントの属性を取得または設定します。 |
![]() | AttributeString | ポリシー ステートメントの属性の文字列形式を取得します。 |
![]() | PermissionSet | ポリシー ステートメントの PermissionSet を取得または設定します。 |

PolicyStatement メソッド

名前 | 説明 | |
---|---|---|
![]() | Copy | 現在のポリシー ステートメントと等価のコピーを作成します。 |
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | FromXml | オーバーロードされます。 XML エンコーディングから、特定の状態のセキュリティ オブジェクトを再構築します。 |
![]() | GetHashCode | オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PolicyStatement オブジェクトのハッシュ コードを取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
![]() | ToXml | オーバーロードされます。 セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。 |

PolicyStatement メンバ
CodeGroup のステートメントを表し、特定の証拠のセットでコードに適用されるアクセス許可情報、およびその他の情報を記述します。このクラスは継承できません。
PolicyStatement データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Attributes | ポリシー ステートメントの属性を取得または設定します。 |
![]() | AttributeString | ポリシー ステートメントの属性の文字列形式を取得します。 |
![]() | PermissionSet | ポリシー ステートメントの PermissionSet を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | Copy | 現在のポリシー ステートメントと等価のコピーを作成します。 |
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | FromXml | オーバーロードされます。 XML エンコーディングから、特定の状態のセキュリティ オブジェクトを再構築します。 |
![]() | GetHashCode | オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PolicyStatement オブジェクトのハッシュ コードを取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | ToXml | オーバーロードされます。 セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。 |

- PolicyStatementのページへのリンク