GenericPrincipal Класс

Определение

Представляет универсального участника.Represents a generic principal.

public ref class GenericPrincipal : System::Security::Claims::ClaimsPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class GenericPrincipal : System.Security.Claims.ClaimsPrincipal
type GenericPrincipal = class
    inherit ClaimsPrincipal
Public Class GenericPrincipal
Inherits ClaimsPrincipal
Наследование
GenericPrincipal
Производный
Атрибуты

Примеры

В следующем примере показано использование членов класса GenericPrincipal.The following example shows the use of members of the GenericPrincipal class.

using namespace System;
using namespace System::Security::Principal;

ref class GenericPrincipalMembers
{
public:
   [STAThread]
   static void Main()
   {
      // Retrieve a GenericPrincipal that is based on the current user's
      // WindowsIdentity.
      GenericPrincipal^ genericPrincipal = GetGenericPrincipal();
      
      // Retrieve the generic identity of the GenericPrincipal object.
      GenericIdentity^ principalIdentity =
         dynamic_cast<GenericIdentity^>(genericPrincipal->Identity);

      // Display the identity name and authentication type.
      if ( principalIdentity->IsAuthenticated )
      {
         Console::WriteLine( principalIdentity->Name );
         Console::WriteLine( L"Type:{0}",
            principalIdentity->AuthenticationType );
      }
      
      // Verify that the generic principal has been assigned the
      // NetworkUser role.
      if ( genericPrincipal->IsInRole( L"NetworkUser" ) )
      {
         Console::WriteLine( L"User belongs to the NetworkUser role." );
      }
      Console::WriteLine( L"The sample completed successfully; "
      L"press Enter to continue." );
      Console::ReadLine();
   }

private:
   // Create a generic principal based on values from the current
   // WindowsIdentity.
   static GenericPrincipal^ GetGenericPrincipal()
   {
      // Use values from the current WindowsIdentity to construct
      // a set of GenericPrincipal roles.
      WindowsIdentity^ windowsIdentity = WindowsIdentity::GetCurrent();
      array<String^>^roles = gcnew array<String^>(10);
      if ( windowsIdentity->IsAuthenticated )
      {
         
         // Add custom NetworkUser role.
         roles[ 0 ] = L"NetworkUser";
      }

      if ( windowsIdentity->IsGuest )
      {
         
         // Add custom GuestUser role.
         roles[ 1 ] = L"GuestUser";
      }

      if ( windowsIdentity->IsSystem )
      {
         
         // Add custom SystemUser role.
         roles[ 2 ] = L"SystemUser";
      }
      
      // Construct a GenericIdentity object based on the current Windows
      // identity name and authentication type.
      String^ authenticationType = windowsIdentity->AuthenticationType;
      String^ userName = windowsIdentity->Name;
      GenericIdentity^ genericIdentity = gcnew GenericIdentity(
         userName,authenticationType );
      
      // Construct a GenericPrincipal object based on the generic identity
      // and custom roles for the user.
      GenericPrincipal^ genericPrincipal = gcnew GenericPrincipal(
         genericIdentity,roles );

      return genericPrincipal;
   }
};

int main()
{
   GenericPrincipalMembers::Main();
}


using System;
using System.Security.Principal;

class GenericPrincipalMembers
{
    [STAThread]
    static void Main(string[] args)
    {
        // Retrieve a GenericPrincipal that is based on the current user's
        // WindowsIdentity.
        GenericPrincipal genericPrincipal = GetGenericPrincipal();

        // Retrieve the generic identity of the GenericPrincipal object.
        GenericIdentity principalIdentity = 
            (GenericIdentity)genericPrincipal.Identity;

        // Display the identity name and authentication type.
        if (principalIdentity.IsAuthenticated)
        {
            Console.WriteLine(principalIdentity.Name);
            Console.WriteLine("Type:"+principalIdentity.AuthenticationType);
        }

        // Verify that the generic principal has been assigned the
        // NetworkUser role.
        if (genericPrincipal.IsInRole("NetworkUser"))
        {
            Console.WriteLine("User belongs to the NetworkUser role.");
        }

        Console.WriteLine("The sample completed successfully; " +
            "press Enter to continue.");
        Console.ReadLine();
    }

    // Create a generic principal based on values from the current
    // WindowsIdentity.
    private static GenericPrincipal GetGenericPrincipal()
    {
        // Use values from the current WindowsIdentity to construct
        // a set of GenericPrincipal roles.
        WindowsIdentity windowsIdentity = WindowsIdentity.GetCurrent();
        string[] roles = new string[10];
        if (windowsIdentity.IsAuthenticated)
        {
            // Add custom NetworkUser role.
            roles[0] = "NetworkUser";
        }

        if (windowsIdentity.IsGuest)
        {
            // Add custom GuestUser role.
            roles[1] = "GuestUser";
        }

        if (windowsIdentity.IsSystem)
        {
            // Add custom SystemUser role.
            roles[2] = "SystemUser";
        }

        // Construct a GenericIdentity object based on the current Windows
        // identity name and authentication type.
        string authenticationType = windowsIdentity.AuthenticationType;
        string userName = windowsIdentity.Name;
        GenericIdentity genericIdentity =
            new GenericIdentity(userName, authenticationType);

        // Construct a GenericPrincipal object based on the generic identity
        // and custom roles for the user.
        GenericPrincipal genericPrincipal =
            new GenericPrincipal(genericIdentity, roles);

        return genericPrincipal;
    }
}

Imports System.Security.Principal

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 = ""

        ' Retrieve a GenericPrincipal that is based on the current user's
        ' WindowsIdentity.
        Dim genericPrincipal As GenericPrincipal = GetGenericPrincipal()

        ' Retrieve the generic identity of the GenericPrincipal object.
        Dim principalIdentity As GenericIdentity = _
            CType(genericPrincipal.Identity, GenericIdentity)

        ' Display identity name and authentication type.
        If (principalIdentity.IsAuthenticated) Then
            WriteLine(principalIdentity.Name)
            WriteLine("Type:" + principalIdentity.AuthenticationType)
        End If

        ' Verify that the generic principal has been assigned the
        ' NetworkUser role.
        If (genericPrincipal.IsInRole("NetworkUser")) Then
            WriteLine("User belongs to the NetworkUser role.")
        End If
        WriteLine("This sample completed successfully; " + _
            " press Exit to continue.")
        tbxOutput.Cursor = Cursors.Default
    End Sub
    ' Create generic principal based on values from the current
    ' WindowsIdentity.
    Private Function GetGenericPrincipal() As GenericPrincipal
        ' Use values from the current WindowsIdentity to construct
        ' a set of GenericPrincipal roles.
        Dim roles(10) As String
        Dim windowsIdentity As WindowsIdentity = windowsIdentity.GetCurrent()

        If (windowsIdentity.IsAuthenticated) Then
            ' Add custom NetworkUser role.
            roles(0) = "NetworkUser"
        End If

        If (windowsIdentity.IsGuest) Then
            ' Add custom GuestUser role.
            roles(1) = "GuestUser"
        End If


        If (windowsIdentity.IsSystem) Then
            ' Add custom SystemUser role.
            roles(2) = "SystemUser"
        End If

        ' Construct a GenericIdentity object based on the current Windows
        ' identity name and authentication type.
        Dim authenticationType As String = windowsIdentity.AuthenticationType
        Dim userName As String = windowsIdentity.Name
        Dim genericIdentity = _
            New GenericIdentity(userName, authenticationType)

        ' Construct a GenericPrincipal object based on the generic identity
        ' and custom roles for the user.
        Dim genericPrincipal As New GenericPrincipal(genericIdentity, roles)

        Return genericPrincipal
    End Function
    ' Write out message with linefeed and carriage return.
    Private Sub WriteLine(ByVal message As String)
        tbxOutput.AppendText(message + 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 = "GenericPrincipal"
        Me.Panel2.ResumeLayout(False)
        Me.Panel1.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region
End Class

Комментарии

Этот класс представляет роли текущего пользователя.This class represents the roles of the current user.

Конструкторы

GenericPrincipal(IIdentity, String[])

Инициализирует новый экземпляр класса GenericPrincipal из удостоверения пользователя и массива имен ролей, которые назначены представляемому этим удостоверением пользователю.Initializes a new instance of the GenericPrincipal class from a user identity and an array of role names to which the user represented by that identity belongs.

Свойства

Claims

Возвращает коллекцию, содержащую все утверждения из всех удостоверений, основанных на утверждениях, которые связаны с этим субъектом утверждений.Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal.

(Унаследовано от ClaimsPrincipal)
CustomSerializationData

Содержит дополнительные данные, предоставленные производным типом.Contains any additional data provided by a derived type. Обычно устанавливается при вызове WriteTo(BinaryWriter, Byte[]).Typically set when calling WriteTo(BinaryWriter, Byte[]).

(Унаследовано от ClaimsPrincipal)
Identities

Возвращает коллекцию, содержащую все удостоверения утверждений, связанные с этим субъектом утверждений.Gets a collection that contains all of the claims identities associated with this claims principal.

(Унаследовано от ClaimsPrincipal)
Identity

Получает удостоверение GenericIdentity пользователя, представленного текущим элементом GenericPrincipal.Gets the GenericIdentity of the user represented by the current GenericPrincipal.

Методы

AddIdentities(IEnumerable<ClaimsIdentity>)

Добавляет указанные удостоверения, основанные на утверждениях, в этот субъект утверждений.Adds the specified claims identities to this claims principal.

(Унаследовано от ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

Добавляет указанное удостоверение утверждения к этому участнику утверждений.Adds the specified claims identity to this claims principal.

(Унаследовано от ClaimsPrincipal)
Clone()

Возвращает копию этого экземпляра.Returns a copy of this instance.

(Унаследовано от ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

Создает новое удостоверение, основанное на утверждениях.Creates a new claims identity.

(Унаследовано от ClaimsPrincipal)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
FindAll(Predicate<Claim>)

Извлекает все утверждения, сопоставленные указанным предикатом.Retrieves all of the claims that are matched by the specified predicate.

(Унаследовано от ClaimsPrincipal)
FindAll(String)

Извлекает все утверждения или утверждения, которые имеют заданный тип утверждения.Retrieves all or the claims that have the specified claim type.

(Унаследовано от ClaimsPrincipal)
FindFirst(Predicate<Claim>)

Извлекает первое утверждение, которое соответствует указанному предикату.Retrieves the first claim that is matched by the specified predicate.

(Унаследовано от ClaimsPrincipal)
FindFirst(String)

Извлекает первое утверждение с заданным типом утверждения.Retrieves the first claim with the specified claim type.

(Унаследовано от ClaimsPrincipal)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Заполняет SerializationInfo данными, необходимыми для сериализации текущего объекта ClaimsPrincipal.Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object.

(Унаследовано от ClaimsPrincipal)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
HasClaim(Predicate<Claim>)

Определяет, содержат ли удостоверения, основанные на утверждениях и связанные с субъектом утверждений, утверждения, которые соответствуют указанному предикату.Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate.

(Унаследовано от ClaimsPrincipal)
HasClaim(String, String)

Определяет, содержат ли удостоверения утверждений, связанные с субъектом утверждений, утверждения с указанным типом и значением.Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value.

(Унаследовано от ClaimsPrincipal)
IsInRole(String)

Определяет, относится ли текущий элемент GenericPrincipal к указанной роли.Determines whether the current GenericPrincipal belongs to the specified role.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
WriteTo(BinaryWriter)

Выполняет сериализацию с помощью BinaryWriter.Serializes using a BinaryWriter.

(Унаследовано от ClaimsPrincipal)
WriteTo(BinaryWriter, Byte[])

Выполняет сериализацию с помощью BinaryWriter.Serializes using a BinaryWriter.

(Унаследовано от ClaimsPrincipal)

Применяется к