Partager via


PolicyStatement Classe

Définition

Représente l'instruction d'un CodeGroup décrivant les autorisations et d'autres informations qui s'appliquent au code présentant un ensemble de preuves particulier. Cette classe ne peut pas être héritée.

public ref class PolicyStatement sealed : System::Security::ISecurityEncodable, System::Security::ISecurityPolicyEncodable
public sealed class PolicyStatement : System.Security.ISecurityEncodable, System.Security.ISecurityPolicyEncodable
[System.Serializable]
public sealed class PolicyStatement : System.Security.ISecurityEncodable, System.Security.ISecurityPolicyEncodable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PolicyStatement : System.Security.ISecurityEncodable, System.Security.ISecurityPolicyEncodable
type PolicyStatement = class
    interface ISecurityEncodable
    interface ISecurityPolicyEncodable
[<System.Serializable>]
type PolicyStatement = class
    interface ISecurityEncodable
    interface ISecurityPolicyEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PolicyStatement = class
    interface ISecurityEncodable
    interface ISecurityPolicyEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PolicyStatement = class
    interface ISecurityPolicyEncodable
    interface ISecurityEncodable
Public NotInheritable Class PolicyStatement
Implements ISecurityEncodable, ISecurityPolicyEncodable
Héritage
PolicyStatement
Attributs
Implémente

Exemples

L’exemple de code suivant montre l’utilisation de membres de la PolicyStatement classe

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/>
//
// *** 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 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/>
// 
// *** 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.
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/>
' 
' *** 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

Remarques

Un PolicyStatement ensemble d’autorisations accordées et d’attributs spéciaux possibles pour le groupe de codes est constitué d’un ensemble d’autorisations accordées.

Les instructions de stratégie sont généralement utilisées comme valeur de retour d’une Resolve opération sur un PolicyLevel.

Constructeurs

PolicyStatement(PermissionSet)
Obsolète.

Initialise une nouvelle instance de la classe PolicyStatement avec le PermissionSet spécifié.

PolicyStatement(PermissionSet, PolicyStatementAttribute)
Obsolète.

Initialise une nouvelle instance de la classe PolicyStatement avec le PermissionSet et les attributs spécifiés.

Propriétés

Attributes

Obtient ou définit les attributs de l'instruction de stratégie.

AttributeString

Obtient une représentation sous forme de chaîne des attributs de l'instruction de stratégie.

PermissionSet
Obsolète.

Obtient ou définit le PermissionSet de l'instruction de stratégie.

Méthodes

Copy()

Crée une copie équivalente de l'instruction de stratégie en cours.

Equals(Object)

Détermine si l'objet PolicyStatement spécifié est égal à PolicyStatement en cours.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FromXml(SecurityElement)

Reconstruit un objet de sécurité avec un état donné à partir d'un codage XML.

FromXml(SecurityElement, PolicyLevel)

Reconstruit un objet de sécurité avec un état donné à partir d'un codage XML.

GetHashCode()

Obtient un code de hachage pour l’objet PolicyStatement qui peut être utilisé dans des structures de données et des algorithmes de hachage, comme une table de hachage.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
ToXml()

Crée un codage XML de l’objet de sécurité et de son état actuel.

ToXml(PolicyLevel)

Crée un codage XML de l’objet de sécurité et de son état actuel.

S’applique à