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);

Параметры

userToken
IntPtr

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

Исключения

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

-или-

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

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

-или-

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

Комментарии

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

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

Ескерім

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(WindowsIdentity)

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

protected WindowsIdentity (System.Security.Principal.WindowsIdentity identity);

Параметры

identity
WindowsIdentity

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(String)

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

public WindowsIdentity (string sUserPrincipalName);

Параметры

sUserPrincipalName
String

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

Исключения

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

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

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

-или-

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

-или-

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

-или-

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

Комментарии

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

Ескерім

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(IntPtr, String)

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

public WindowsIdentity (IntPtr userToken, string type);

Параметры

userToken
IntPtr

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

type
String

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

Исключения

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

-или-

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

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

-или-

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

Примеры

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

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 + ".");
}

Комментарии

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

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

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

Ескерім

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

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);
[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);

Параметры

info
SerializationInfo

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

context
StreamingContext

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

Атрибуты

Исключения

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

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

-или-

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

Комментарии

Маңызды

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар (Ескірген)
.NET 6, 7 (8, 9)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(String, String)

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

public WindowsIdentity (string sUserPrincipalName, string type);

Параметры

sUserPrincipalName
String

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

type
String

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

Исключения

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

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

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

-или-

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

-или-

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

-или-

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

Комментарии

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

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

Ескерім

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

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

.NET Framework 4.8.1 және басқа нұсқалар
Өнім Нұсқалар
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

WindowsIdentity(IntPtr, String, WindowsAccountType)

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

public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);

Параметры

userToken
IntPtr

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

type
String

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

acctType
WindowsAccountType

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

Исключения

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

-или-

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

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

-или-

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

Примеры

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

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 + ".");
}

Комментарии

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

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

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

Ескерім

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

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

public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);

Параметры

userToken
IntPtr

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

type
String

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

acctType
WindowsAccountType

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

isAuthenticated
Boolean

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

Исключения

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

-или-

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

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

-или-

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

Примеры

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

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 + ".");
}

Комментарии

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

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

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

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5