Compartir a través de


PolicyStatement Clase

Definición

Representa la instrucción de un CodeGroup que describe los permisos y demás información que se aplica al código con un conjunto de evidencias en particular. Esta clase no puede heredarse.

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
Herencia
PolicyStatement
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra el uso de miembros de la PolicyStatement clase .

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

Comentarios

Consta PolicyStatement de un conjunto de permisos concedidos y posibles atributos especiales para el grupo de código.

Las instrucciones de directiva se suelen usar como valor devuelto de una Resolve operación en .PolicyLevel

Constructores

PolicyStatement(PermissionSet)
Obsoleto.

Inicializa una nueva instancia de la clase PolicyStatement con el objeto PermissionSet especificado.

PolicyStatement(PermissionSet, PolicyStatementAttribute)
Obsoleto.

Inicializa una nueva instancia de la clase PolicyStatement con el PermissionSet y los atributos especificados.

Propiedades

Attributes

Obtiene o establece los atributos de la instrucción de directiva.

AttributeString

Obtiene una representación de cadena de los atributos de la instrucción de directiva.

PermissionSet
Obsoleto.

Obtiene o establece el PermissionSet de la instrucción de directiva.

Métodos

Copy()

Crea una copia equivalente de la instrucción de directiva actual.

Equals(Object)

Determina si el objeto PolicyStatement especificado es igual al objeto PolicyStatement actual.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FromXml(SecurityElement)

Reconstruye un objeto de seguridad con un estado dado a partir de codificación XML.

FromXml(SecurityElement, PolicyLevel)

Reconstruye un objeto de seguridad con un estado dado a partir de codificación XML.

GetHashCode()

Obtiene un código hash para el objeto PolicyStatement que es adecuado para su uso en algoritmos hash y estructuras de datos como una tabla hash.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
ToXml()

Crea una codificación XML del objeto de seguridad y su estado actual.

ToXml(PolicyLevel)

Crea una codificación XML del objeto de seguridad y su estado actual.

Se aplica a