WindowsIdentity Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi instans baru kelas WindowsIdentity.
Overload
WindowsIdentity(IntPtr) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan. |
WindowsIdentity(WindowsIdentity) |
Menginisialisasi instans WindowsIdentity baru kelas dengan menggunakan objek yang ditentukan WindowsIdentity . |
WindowsIdentity(String) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh Nama Prinsipal Pengguna (UPN) yang ditentukan. |
WindowsIdentity(IntPtr, String) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan dan jenis autentikasi yang ditentukan. |
WindowsIdentity(SerializationInfo, StreamingContext) |
Kedaluwarsa.
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh informasi dalam SerializationInfo aliran. |
WindowsIdentity(String, String) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh Nama Prinsipal Pengguna (UPN) yang ditentukan dan jenis autentikasi yang ditentukan. |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, dan jenis akun Windows yang ditentukan. |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, jenis akun Windows yang ditentukan, dan status autentikasi yang ditentukan. |
WindowsIdentity(IntPtr)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan.
public:
WindowsIdentity(IntPtr userToken);
public WindowsIdentity (IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)
Parameter
- userToken
-
IntPtr
nativeint
Token akun untuk pengguna atas nama siapa kode berjalan.
Pengecualian
userToken
adalah 0.
-atau-
userToken
diduplikasi dan tidak valid untuk peniruan identitas.
Keterangan
Tabel berikut ini memperlihatkan nilai properti awal untuk instans WindowsIdentity.
Properti | Nilai awal |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
Catatan
Anda dapat mengambil token yang diwakili dengan userToken
memanggil kode yang tidak dikelola seperti fungsi Windows API LogonUser
. Selalu rilis userToken
dengan memanggil fungsi Windows API CloseHandle
. Untuk informasi selengkapnya tentang memanggil kode yang tidak dikelola, lihat Mengonsumsi Fungsi DLL Tidak Terkelola.
Berlaku untuk
WindowsIdentity(WindowsIdentity)
Menginisialisasi instans WindowsIdentity baru kelas dengan menggunakan objek yang ditentukan 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)
Parameter
- identity
- WindowsIdentity
Objek tempat untuk membangun instans baru .WindowsIdentity
Berlaku untuk
WindowsIdentity(String)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh Nama Prinsipal Pengguna (UPN) yang ditentukan.
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)
Parameter
- sUserPrincipalName
- String
UPN untuk pengguna atas nama siapa kode berjalan.
Pengecualian
Windows mengembalikan kode status Windows NT STATUS_ACCESS_DENIED.
Tidak tersedia cukup memori.
Pemanggil tidak memiliki izin yang benar.
-atau-
Komputer tidak dilampirkan ke domain Windows 2003 atau yang lebih baru.
-atau-
Komputer tidak menjalankan Windows 2003 atau yang lebih baru.
-atau-
Pengguna bukan anggota domain tempat komputer dilampirkan.
Keterangan
UPN memiliki format nama domain nama@ pengguna.com, dengan kata lain, alamat email. UPN yang diidentifikasi di sUserPrincipalName
digunakan untuk mengambil token untuk pengguna tersebut melalui fungsi Windows API LsaLogonUser
. Pada gilirannya token tersebut digunakan untuk mengidentifikasi pengguna. Pengecualian mungkin dikembalikan karena ketidakmampuan untuk masuk menggunakan UPN yang disediakan.
Catatan
Konstruktor ini ditujukan untuk digunakan hanya pada komputer yang bergabung ke domain Windows Server 2003 atau yang lebih baru. Pengecualian dilemparkan untuk jenis domain sebelumnya. Pembatasan ini disebabkan oleh fakta bahwa konstruktor ini menggunakan struktur KERB_S4U_LOGON, yang pertama kali diperkenalkan di Windows Server 2003. Selain itu, konstruktor ini memerlukan akses baca ke atribut token-groups-global-and-universal (TGGAU) pada akun pengguna target.
Berlaku untuk
WindowsIdentity(IntPtr, String)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan dan jenis autentikasi yang ditentukan.
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)
Parameter
- userToken
-
IntPtr
nativeint
Token akun untuk pengguna atas nama siapa kode berjalan.
- type
- String
(Penggunaan informasi saja.) Jenis autentikasi yang digunakan untuk mengidentifikasi pengguna.
Pengecualian
userToken
adalah 0.
-atau-
userToken
diduplikasi dan tidak valid untuk peniruan identitas.
Contoh
Kode berikut menunjukkan penggunaan WindowsIdentity konstruktor untuk membuat instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan dan jenis autentikasi yang ditentukan. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk WindowsIdentity kelas .
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
Keterangan
Tabel berikut ini memperlihatkan nilai properti awal untuk instans WindowsIdentity.
Properti | Nilai awal |
---|---|
WindowsAccountType | Normal |
IsAuthenticated | false |
Nilai type
parameter digunakan untuk mengatur AuthenticationType parameter . Jika type
adalah null
, sistem keamanan diatur AuthenticationType ke Negotiate
pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, dan ke Kerberos
pada versi sistem operasi Windows yang lebih lama. Sistem keamanan tidak menggunakan nilai ini; itu hanya untuk penggunaan informasi.
Catatan
Anda dapat mengambil token yang diwakili dengan userToken
memanggil kode yang tidak dikelola seperti fungsi Windows API LogonUser
. Selalu rilis userToken
dengan memanggil fungsi Windows API CloseHandle
. Untuk informasi selengkapnya tentang memanggil kode yang tidak dikelola, lihat Mengonsumsi Fungsi DLL Tidak Terkelola.
Berlaku untuk
WindowsIdentity(SerializationInfo, StreamingContext)
Perhatian
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh informasi dalam SerializationInfo aliran.
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)
Parameter
- info
- SerializationInfo
Objek yang berisi informasi akun untuk pengguna.
- context
- StreamingContext
Objek yang menunjukkan karakteristik aliran.
- Atribut
Pengecualian
tidak WindowsIdentity dapat diserialisasikan di seluruh proses.
Keterangan
Penting
Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.
Berlaku untuk
WindowsIdentity(String, String)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh Nama Prinsipal Pengguna (UPN) yang ditentukan dan jenis autentikasi yang ditentukan.
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)
Parameter
- sUserPrincipalName
- String
UPN untuk pengguna atas nama siapa kode berjalan.
- type
- String
(Penggunaan informasi saja.) Jenis autentikasi yang digunakan untuk mengidentifikasi pengguna.
Pengecualian
Windows mengembalikan kode status Windows NT STATUS_ACCESS_DENIED.
Tidak tersedia cukup memori.
Pemanggil tidak memiliki izin yang benar.
-atau-
Komputer tidak dilampirkan ke domain Windows 2003 atau yang lebih baru.
-atau-
Komputer tidak menjalankan Windows 2003 atau yang lebih baru.
-atau-
Pengguna bukan anggota domain tempat komputer dilampirkan.
Keterangan
Nilai type
parameter digunakan untuk mengatur AuthenticationType parameter . Jika type
adalah null
, sistem keamanan diatur AuthenticationType ke Negotiate
pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, dan ke Kerberos
pada versi sistem operasi Windows yang lebih lama. Sistem keamanan tidak menggunakan nilai ini; itu hanya untuk penggunaan informasi.
UPN yang diidentifikasi di sUserPrincipalName
digunakan untuk mengambil token untuk pengguna tersebut melalui fungsi Windows API LsaLogonUser
. Pada gilirannya token tersebut digunakan untuk mengidentifikasi pengguna. Pengecualian mungkin dikembalikan karena ketidakmampuan untuk masuk menggunakan UPN yang disediakan.
Catatan
Konstruktor ini ditujukan untuk digunakan hanya pada komputer yang bergabung ke domain Windows Server 2003 atau yang lebih baru. Pengecualian dilemparkan untuk jenis domain sebelumnya. Pembatasan ini disebabkan oleh fakta bahwa konstruktor ini menggunakan struktur KERB_S4U_LOGON, yang pertama kali diperkenalkan di Windows Server 2003. Selain itu, konstruktor ini memerlukan akses baca ke atribut token-groups-global-and-universal (TGGAU) pada akun pengguna target.
Berlaku untuk
WindowsIdentity(IntPtr, String, WindowsAccountType)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, dan jenis akun Windows yang ditentukan.
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)
Parameter
- userToken
-
IntPtr
nativeint
Token akun untuk pengguna atas nama siapa kode berjalan.
- type
- String
(Penggunaan informasi saja.) Jenis autentikasi yang digunakan untuk mengidentifikasi pengguna.
- acctType
- WindowsAccountType
Salah satu nilai enumerasi.
Pengecualian
userToken
adalah 0.
-atau-
userToken
diduplikasi dan tidak valid untuk peniruan identitas.
Contoh
Kode berikut menunjukkan penggunaan WindowsIdentity konstruktor untuk membuat instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, dan jenis akun Windows yang ditentukan. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk WindowsIdentity kelas .
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
Keterangan
Tabel berikut ini memperlihatkan nilai properti awal untuk instans WindowsIdentity.
Properti | Nilai Awal |
---|---|
IsAuthenticated | false |
Nilai type
parameter digunakan untuk mengatur AuthenticationType parameter . Jika type
adalah null
, sistem keamanan diatur AuthenticationType ke Negotiate
pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, dan ke Kerberos
pada versi sistem operasi Windows yang lebih lama. Sistem keamanan tidak menggunakan nilai ini; itu hanya untuk penggunaan informasi.
Catatan
Anda dapat mengambil token yang diwakili dengan userToken
memanggil kode yang tidak dikelola seperti fungsi Windows API LogonUser
. Selalu rilis userToken
dengan memanggil fungsi Windows API CloseHandle
. Untuk informasi selengkapnya tentang memanggil kode yang tidak dikelola, lihat Mengonsumsi Fungsi DLL Tidak Terkelola.
Berlaku untuk
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
Menginisialisasi instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, jenis akun Windows yang ditentukan, dan status autentikasi yang ditentukan.
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)
Parameter
- userToken
-
IntPtr
nativeint
Token akun untuk pengguna atas nama siapa kode berjalan.
- type
- String
(Penggunaan informasi saja.) Jenis autentikasi yang digunakan untuk mengidentifikasi pengguna.
- acctType
- WindowsAccountType
Salah satu nilai enumerasi.
- isAuthenticated
- Boolean
true
untuk menunjukkan bahwa pengguna diautentikasi; jika tidak, false
.
Pengecualian
userToken
adalah 0.
-atau-
userToken
diduplikasi dan tidak valid untuk peniruan identitas.
Contoh
Kode berikut menunjukkan penggunaan WindowsIdentity konstruktor untuk membuat instans WindowsIdentity baru kelas untuk pengguna yang diwakili oleh token akun Windows yang ditentukan, jenis autentikasi yang ditentukan, jenis akun Windows yang ditentukan, dan status autentikasi yang ditentukan. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk WindowsIdentity kelas .
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
Keterangan
Nilai type
parameter digunakan untuk mengatur AuthenticationType parameter . Jika type
adalah null
, sistem keamanan diatur AuthenticationType ke Negotiate
pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, dan ke Kerberos
pada versi sistem operasi Windows yang lebih lama. Sistem keamanan tidak menggunakan nilai ini; itu hanya untuk penggunaan informasi.
Anda dapat mengambil token yang diwakili dengan userToken
memanggil kode yang tidak dikelola seperti fungsi Windows API LogonUser
. Selalu rilis userToken
dengan memanggil fungsi Windows API CloseHandle
. Untuk informasi selengkapnya tentang memanggil kode yang tidak dikelola, lihat Mengonsumsi Fungsi DLL Tidak Terkelola.