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
дублирован и недопустим для олицетворения.
Комментарии
В следующей таблице показаны начальные значения свойств для экземпляра 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 или более поздней версии.
-или-
Пользователь не является участником домена, к которому присоединен компьютер.
Комментарии
Имя участника-пользователя имеет формат имя_пользователя@имя_домена.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
дублирован и недопустим для олицетворения.
Примеры
В следующем коде показано использование конструктора 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
, система безопасности устанавливает для значение AuthenticationTypeNegotiate
в 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 невозможно сериализовать через процессы.
Комментарии
Важно!
Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе Проверка всех входных данных.
Применяется к
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
, система безопасности устанавливает значение 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) в целевой учетной записи пользователя.
Применяется к
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
дублирован и недопустим для олицетворения.
Примеры
В следующем коде показано использование конструктора 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
, система безопасности устанавливает значение AuthenticationType в Negotiate
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
дублирован и недопустим для олицетворения.
Примеры
В следующем коде показано использование конструктора 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
, система безопасности устанавливает значение AuthenticationType в Negotiate
Windows Vista и более поздних версиях операционной системы Windows, а также в Kerberos
более ранних версиях операционной системы Windows. Система безопасности не использует это значение; он предназначен только для информационных целей.
Вы можете получить маркер, представленный путем userToken
вызова неуправляемого кода, например функции API LogonUser
Windows. Всегда освобождайте, userToken
вызывая функцию API CloseHandle
Windows. Дополнительные сведения о вызове неуправляемого кода см. в разделе Использование неуправляемых функций DLL.