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

Определение

Инициализирует новый экземпляр класса WindowsIdentity.

Перегрузки

WindowsIdentity(IntPtr)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным токеном учетной записи Windows.

WindowsIdentity(WindowsIdentity)

Инициализирует новый экземпляр класса WindowsIdentity, используя указанный объект WindowsIdentity.

WindowsIdentity(String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного указанным именем участника-пользователя.

WindowsIdentity(IntPtr, String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным токеном учетной записи Windows и заданным типом проверки подлинности.

WindowsIdentity(SerializationInfo, StreamingContext)
Устаревшие..

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного данными в потоке SerializationInfo.

WindowsIdentity(String, String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным именем участника-пользователя и типом проверки подлинности.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданными токеном учетной записи Windows, типом проверки подлинности и типом учетной записи Windows.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного указанными токеном учетной записи Windows, типом проверки подлинности, типом учетной записи Windows и состоянием проверки подлинности.

WindowsIdentity(IntPtr)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным токеном учетной записи Windows.

public:
 WindowsIdentity(IntPtr userToken);
public WindowsIdentity (IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)

Параметры

userToken
IntPtr

nativeint

Токен учетной записи для пользователя, от лица которого выполняется код.

Исключения

userToken имеет значение 0.

-или-

Параметр userToken дублирован и недопустим для олицетворения.

У вызывающего объекта нет нужных разрешений.

-или-

Произошла ошибка Win32.

Комментарии

В следующей таблице показаны начальные значения свойств для экземпляра WindowsIdentity.

Свойство Начальное значение
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Примечание

Вы можете получить маркер, представленный путем userToken вызова неуправляемого кода, например функции API LogonUser Windows. Всегда освобождайте, userToken вызывая функцию API CloseHandle Windows. Дополнительные сведения о вызове неуправляемого кода см. в разделе Использование неуправляемых функций DLL.

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

WindowsIdentity(WindowsIdentity)

Инициализирует новый экземпляр класса WindowsIdentity, используя указанный объект WindowsIdentity.

protected:
 WindowsIdentity(System::Security::Principal::WindowsIdentity ^ identity);
protected WindowsIdentity (System.Security.Principal.WindowsIdentity identity);
new System.Security.Principal.WindowsIdentity : System.Security.Principal.WindowsIdentity -> System.Security.Principal.WindowsIdentity
Protected Sub New (identity As WindowsIdentity)

Параметры

identity
WindowsIdentity

Объект, из которого создается новый экземпляр WindowsIdentity.

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

WindowsIdentity(String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного указанным именем участника-пользователя.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName);
public WindowsIdentity (string sUserPrincipalName);
new System.Security.Principal.WindowsIdentity : string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String)

Параметры

sUserPrincipalName
String

Имя участника-пользователя, от лица которого выполняется код.

Исключения

Система Windows вернула код состояния STATUS_ACCESS_DENIED Windows NT.

Не хватает памяти.

У вызывающего объекта нет нужных разрешений.

-или-

Компьютер не присоединен к Windows 2003 или к более поздней версии домена.

-или-

Компьютер не находится под управлением Windows 2003 или более поздней версии.

-или-

Пользователь не является участником домена, к которому присоединен компьютер.

Комментарии

Имя участника-пользователя имеет формат имени пользователя@domainname.com, другими словами, адрес электронной почты. Имя участника-пользователя, указанное в , sUserPrincipalName используется для получения маркера для этого пользователя с помощью функции API LsaLogonUser Windows. В свою очередь, этот маркер используется для идентификации пользователя. Может быть возвращено исключение из-за невозможности войти в систему с помощью предоставленного имени участника-пользователя.

Примечание

Этот конструктор предназначен для использования только на компьютерах, присоединенных к доменам Windows Server 2003 или более поздних версий. Исключение возникает для более ранних типов доменов. Это ограничение связано с тем, что этот конструктор использует структуру KERB_S4U_LOGON, которая впервые появилась в Windows Server 2003. Кроме того, этому конструктору требуется доступ на чтение к атрибуту token-groups-global-and-universal (TGGAU) в целевой учетной записи пользователя.

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

WindowsIdentity(IntPtr, String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным токеном учетной записи Windows и заданным типом проверки подлинности.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type);
public WindowsIdentity (IntPtr userToken, string type);
new System.Security.Principal.WindowsIdentity : nativeint * string -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String)

Параметры

userToken
IntPtr

nativeint

Токен учетной записи для пользователя, от лица которого выполняется код.

type
String

(Только для использования в информационных целях.) Тип проверки подлинности, применяемой для идентификации пользователя.

Исключения

userToken имеет значение 0.

-или-

Параметр userToken дублирован и недопустим для олицетворения.

У вызывающего объекта нет нужных разрешений.

-или-

Произошла ошибка Win32.

Примеры

В следующем коде показано использование конструктора WindowsIdentity для создания нового экземпляра WindowsIdentity класса для пользователя, представленного указанным маркером учетной записи Windows и указанным типом проверки подлинности. Этот пример входит в состав более крупного примера использования класса WindowsIdentity.

void IntPtrStringConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token 
   // and the specified authentication type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPtrStringConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token 
    // and the specified authentication type.
    string authenticationType = "WindowsAuthentication";
    WindowsIdentity windowsIdentity =
                    new WindowsIdentity(logonToken, authenticationType);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token 
    ' and the specified authentication type
    Dim authenticationType = "WindowsAuthentication"
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Комментарии

В следующей таблице показаны начальные значения свойств для экземпляра WindowsIdentity.

Свойство Начальное значение
WindowsAccountType Normal
IsAuthenticated false

Значение type параметра используется для задания AuthenticationType параметра . Если type параметр имеет значение null, система безопасности устанавливает значение AuthenticationType в Negotiate Windows Vista и более поздних версиях операционной системы Windows, а также в Kerberos более ранних версиях операционной системы Windows. Система безопасности не использует это значение; он предназначен только для информационных целей.

Примечание

Вы можете получить маркер, представленный путем userToken вызова неуправляемого кода, например функции API LogonUser Windows. Всегда освобождайте, userToken вызывая функцию API CloseHandle Windows. Дополнительные сведения о вызове неуправляемого кода см. в разделе Использование неуправляемых функций DLL.

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

WindowsIdentity(SerializationInfo, StreamingContext)

Внимание!

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного данными в потоке SerializationInfo.

public:
 WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
Public Sub New (info As SerializationInfo, context As StreamingContext)

Параметры

info
SerializationInfo

Объект, содержащий сведения учетной записи пользователя.

context
StreamingContext

Объект, указывающий характеристики потока.

Атрибуты

Исключения

Класс WindowsIdentity невозможно сериализовать через процессы.

У вызывающего объекта нет нужных разрешений.

-или-

Произошла ошибка Win32.

Комментарии

Важно!

Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.

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

WindowsIdentity(String, String)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданным именем участника-пользователя и типом проверки подлинности.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName, System::String ^ type);
public WindowsIdentity (string sUserPrincipalName, string type);
new System.Security.Principal.WindowsIdentity : string * string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String, type As String)

Параметры

sUserPrincipalName
String

Имя участника-пользователя, от лица которого выполняется код.

type
String

(Только для использования в информационных целях.) Тип проверки подлинности, применяемой для идентификации пользователя.

Исключения

Система Windows вернула код состояния STATUS_ACCESS_DENIED Windows NT.

Не хватает памяти.

У вызывающего объекта нет нужных разрешений.

-или-

Компьютер не присоединен к Windows 2003 или к более поздней версии домена.

-или-

Компьютер не находится под управлением Windows 2003 или более поздней версии.

-или-

Пользователь не является участником домена, к которому присоединен компьютер.

Комментарии

Значение type параметра используется для задания AuthenticationType параметра . Если type имеет значение null, система безопасности устанавливает для значение AuthenticationTypeNegotiate в Windows Vista и более поздних версиях операционной системы Windows, а Kerberos для — в более ранних версиях операционной системы Windows. Система безопасности не использует это значение; он предназначен только для информационного использования.

Имя участника-пользователя, указанное в , sUserPrincipalName используется для получения маркера для этого пользователя с помощью функции API LsaLogonUser Windows. В свою очередь, этот маркер используется для идентификации пользователя. Может быть возвращено исключение из-за невозможности входа с помощью предоставленного имени участника-пользователя.

Примечание

Этот конструктор предназначен для использования только на компьютерах, присоединенных к доменам Windows Server 2003 или более поздней версии. Для более ранних типов доменов создается исключение. Это ограничение связано с тем, что этот конструктор использует структуру KERB_S4U_LOGON, которая была впервые представлена в Windows Server 2003. Кроме того, этому конструктору требуется доступ на чтение к атрибуту token-groups-global-and-universal (TGGAU) в целевой учетной записи пользователя.

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

WindowsIdentity(IntPtr, String, WindowsAccountType)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного заданными токеном учетной записи Windows, типом проверки подлинности и типом учетной записи Windows.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType)

Параметры

userToken
IntPtr

nativeint

Токен учетной записи для пользователя, от лица которого выполняется код.

type
String

(Только для использования в информационных целях.) Тип проверки подлинности, применяемой для идентификации пользователя.

acctType
WindowsAccountType

Одно из значений перечисления.

Исключения

userToken имеет значение 0.

-или-

Параметр userToken дублирован и недопустим для олицетворения.

У вызывающего объекта нет нужных разрешений.

-или-

Произошла ошибка Win32.

Примеры

В следующем коде показано использование конструктора WindowsIdentity для создания нового экземпляра WindowsIdentity класса для пользователя, представленного указанным маркером учетной записи Windows, указанным типом проверки подлинности и указанным типом учетной записи Windows. Этот пример входит в состав более крупного примера использования класса WindowsIdentity.

void IntPtrStringTypeConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type and Windows account type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPtrStringTypeConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, and Windows account type.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    WindowsIdentity windowsIdentity =
        new WindowsIdentity(logonToken, authenticationType, guestAccount);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPtrStringTypeConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type and Windows account type.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim windowsIdentity As _
        New WindowsIdentity(logonToken, authenticationType, guestAccount)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Комментарии

В следующей таблице показаны начальные значения свойств для экземпляра WindowsIdentity.

Свойство Начальное значение
IsAuthenticated false

Значение type параметра используется для задания AuthenticationType параметра . Если type имеет значение null, система безопасности устанавливает для значение AuthenticationTypeNegotiate в Windows Vista и более поздних версиях операционной системы Windows, а Kerberos для — в более ранних версиях операционной системы Windows. Система безопасности не использует это значение; он предназначен только для информационного использования.

Примечание

Вы можете получить маркер, представленный путем userToken вызова неуправляемого кода, например функции API LogonUser Windows. Всегда освобождайте, userToken вызывая функцию API CloseHandle Windows. Дополнительные сведения о вызове неуправляемого кода см. в разделе Использование неуправляемых функций DLL.

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

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Инициализирует новый экземпляр класса WindowsIdentity для пользователя, представленного указанными токеном учетной записи Windows, типом проверки подлинности, типом учетной записи Windows и состоянием проверки подлинности.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType, bool isAuthenticated);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType * bool -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType, isAuthenticated As Boolean)

Параметры

userToken
IntPtr

nativeint

Токен учетной записи для пользователя, от лица которого выполняется код.

type
String

(Только для использования в информационных целях.) Тип проверки подлинности, применяемой для идентификации пользователя.

acctType
WindowsAccountType

Одно из значений перечисления.

isAuthenticated
Boolean

Значение true — пользователь прошел проверку подлинности; в противном случае — false.

Исключения

userToken имеет значение 0.

-или-

Параметр userToken дублирован и недопустим для олицетворения.

У вызывающего объекта нет нужных разрешений.

-или-

Произошла ошибка Win32.

Примеры

В следующем коде показано использование конструктора WindowsIdentity для создания нового экземпляра WindowsIdentity класса для пользователя, представленного указанным маркером учетной записи Windows, указанным типом проверки подлинности, указанным типом учетной записи Windows и указанным состоянием проверки подлинности. Этот пример входит в состав более крупного примера использования класса WindowsIdentity.

void IntPrtStringTypeBoolConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type, Windows account type, and
   // authentication flag.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   bool isAuthenticated = true;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount,isAuthenticated );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}
private static void IntPrtStringTypeBoolConstructor(IntPtr logonToken)
{
    // Construct a WindowsIdentity object using the input account token,
    // and the specified authentication type, Windows account type, and
    // authentication flag.
    string authenticationType = "WindowsAuthentication";
    WindowsAccountType guestAccount = WindowsAccountType.Guest;
    bool isAuthenticated = true;
    WindowsIdentity windowsIdentity = new WindowsIdentity(
        logonToken, authenticationType, guestAccount, isAuthenticated);

    Console.WriteLine("Created a Windows identity object named " +
        windowsIdentity.Name + ".");
}
Private Sub IntPrtStringTypeBoolConstructor(ByVal logonToken As IntPtr)
    ' Construct a WindowsIdentity object using the input account token,
    ' and the specified authentication type, Windows account type, and
    ' authentication flag.
    Dim authenticationType As String = "WindowsAuthentication"
    Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
    Dim isAuthenticated As Boolean = True
    Dim windowsIdentity As New WindowsIdentity( _
        logonToken, authenticationType, guestAccount, isAuthenticated)

    WriteLine("Created a Windows identity object named " + _
        windowsIdentity.Name + ".")
End Sub

Комментарии

Значение type параметра используется для задания AuthenticationType параметра . Если type имеет значение null, система безопасности устанавливает для значение AuthenticationTypeNegotiate в Windows Vista и более поздних версиях операционной системы Windows, а Kerberos для — в более ранних версиях операционной системы Windows. Система безопасности не использует это значение; он предназначен только для информационного использования.

Вы можете получить маркер, представленный путем userToken вызова неуправляемого кода, например функции API LogonUser Windows. Всегда освобождайте, userToken вызывая функцию API CloseHandle Windows. Дополнительные сведения о вызове неуправляемого кода см. в разделе Использование неуправляемых функций DLL.

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