WindowsIdentity Konstruktorer

Definition

Initierar en ny instans av WindowsIdentity klassen.

Överlagringar

Name Description
WindowsIdentity(IntPtr)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken.

WindowsIdentity(WindowsIdentity)

Initierar en ny instans av WindowsIdentity klassen med hjälp av det angivna WindowsIdentity objektet.

WindowsIdentity(String)

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name).

WindowsIdentity(IntPtr, String)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen.

WindowsIdentity(SerializationInfo, StreamingContext)
Föråldrad.

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av information i en SerializationInfo dataström.

WindowsIdentity(String, String)

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name) och den angivna autentiseringstypen.

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen.

WindowsIdentity(IntPtr)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken.

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

Parametrar

userToken
IntPtr

nativeint

Kontotoken för användaren för vars räkning koden körs.

Undantag

userToken är 0.

-eller-

userToken är duplicerad och ogiltig för personifiering.

Anroparen har inte rätt behörigheter.

-eller-

Ett Win32-fel uppstod.

Kommentarer

I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.

Fastighet Initialt värde
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

Note

Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.

Gäller för

WindowsIdentity(WindowsIdentity)

Initierar en ny instans av WindowsIdentity klassen med hjälp av det angivna WindowsIdentity objektet.

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)

Parametrar

identity
WindowsIdentity

Objektet som den nya instansen av ska konstrueras från WindowsIdentity.

Gäller för

WindowsIdentity(String)

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name).

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)

Parametrar

sUserPrincipalName
String

UPN för användaren för vars räkning koden körs.

Undantag

Windows returnerade Windows NT-statuskoden STATUS_ACCESS_DENIED.

Det finns inte tillräckligt med minne.

Anroparen har inte rätt behörigheter.

-eller-

Datorn är inte ansluten till en Windows 2003 eller senare domän.

-eller-

Datorn körs inte Windows 2003 eller senare.

-eller-

Användaren är inte medlem i domänen som datorn är ansluten till.

Kommentarer

Ett UPN har formatet användarnamn@domännamn.com med andra ord en e-postadress. UPN som identifieras i sUserPrincipalName används för att hämta en token för användaren via funktionen Windows API LsaLogonUser. Den token används i sin tur för att identifiera användaren. Ett undantag kan returneras på grund av att det inte går att logga in med det angivna UPN:et.

Note

Den här konstruktorn är endast avsedd att användas på datorer som är anslutna till Windows Server domäner från 2003 eller senare. Ett undantag utlöses för tidigare domäntyper. Den här begränsningen beror på att konstruktorn använder strukturen KERB_S4U_LOGON, som först infördes i Windows Server 2003. Den här konstruktorn kräver också läsåtkomst till attributet token-groups-global-and-universal (TGGAU) på målanvändarkontot.

Gäller för

WindowsIdentity(IntPtr, String)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen.

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)

Parametrar

userToken
IntPtr

nativeint

Kontotoken för användaren för vars räkning koden körs.

type
String

(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.

Undantag

userToken är 0.

-eller-

userToken är duplicerad och ogiltig för personifiering.

Anroparen har inte rätt behörigheter.

-eller-

Ett Win32-fel uppstod.

Exempel

Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken och den angivna autentiseringstypen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.

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

Kommentarer

I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.

Fastighet Initialt värde
WindowsAccountType Normal
IsAuthenticated false

Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.

Note

Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.

Gäller för

WindowsIdentity(SerializationInfo, StreamingContext)

Varning

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

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av information i en SerializationInfo dataström.

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);
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}")>]
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
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)

Parametrar

info
SerializationInfo

Objektet som innehåller kontoinformationen för användaren.

context
StreamingContext

Ett objekt som anger strömegenskaperna.

Attribut

Undantag

Det går inte att serialisera A WindowsIdentity mellan processer.

Anroparen har inte rätt behörigheter.

-eller-

Ett Win32-fel uppstod.

Kommentarer

Important

Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.

Gäller för

WindowsIdentity(String, String)

Initierar en ny instans av WindowsIdentity klassen för användaren som representeras av det angivna UPN (User Principal Name) och den angivna autentiseringstypen.

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)

Parametrar

sUserPrincipalName
String

UPN för användaren för vars räkning koden körs.

type
String

(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.

Undantag

Windows returnerade Windows NT-statuskoden STATUS_ACCESS_DENIED.

Det finns inte tillräckligt med minne.

Anroparen har inte rätt behörigheter.

-eller-

Datorn är inte ansluten till en Windows 2003 eller senare domän.

-eller-

Datorn körs inte Windows 2003 eller senare.

-eller-

Användaren är inte medlem i domänen som datorn är ansluten till.

Kommentarer

Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.

UPN som identifieras i sUserPrincipalName används för att hämta en token för användaren via funktionen Windows API LsaLogonUser. Den token används i sin tur för att identifiera användaren. Ett undantag kan returneras på grund av att det inte går att logga in med det angivna UPN:et.

Note

Den här konstruktorn är endast avsedd att användas på datorer som är anslutna till Windows Server domäner från 2003 eller senare. Ett undantag utlöses för tidigare domäntyper. Den här begränsningen beror på att konstruktorn använder strukturen KERB_S4U_LOGON, som först infördes i Windows Server 2003. Den här konstruktorn kräver också läsåtkomst till attributet token-groups-global-and-universal (TGGAU) på målanvändarkontot.

Gäller för

WindowsIdentity(IntPtr, String, WindowsAccountType)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen.

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)

Parametrar

userToken
IntPtr

nativeint

Kontotoken för användaren för vars räkning koden körs.

type
String

(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.

acctType
WindowsAccountType

Ett av uppräkningsvärdena.

Undantag

userToken är 0.

-eller-

userToken är duplicerad och ogiltig för personifiering.

Anroparen har inte rätt behörigheter.

-eller-

Ett Win32-fel uppstod.

Exempel

Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen och den angivna Windows kontotypen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.

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

Kommentarer

I följande tabell visas inledande egenskapsvärden för en instans av WindowsIdentity.

Fastighet Initialt värde
IsAuthenticated false

Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.

Note

Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.

Gäller för

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

Initierar en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen.

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)

Parametrar

userToken
IntPtr

nativeint

Kontotoken för användaren för vars räkning koden körs.

type
String

(Endast informationsanvändning.) Den typ av autentisering som används för att identifiera användaren.

acctType
WindowsAccountType

Ett av uppräkningsvärdena.

isAuthenticated
Boolean

trueför att ange att användaren är autentiserad. annars . false

Undantag

userToken är 0.

-eller-

userToken är duplicerad och ogiltig för personifiering.

Anroparen har inte rätt behörigheter.

-eller-

Ett Win32-fel uppstod.

Exempel

Följande kod visar användningen av konstruktorn WindowsIdentity för att skapa en ny instans av klassen WindowsIdentity för användaren som representeras av den angivna Windows kontotoken, den angivna autentiseringstypen, den angivna Windows kontotypen och den angivna autentiseringsstatusen. Det här kodexemplet är en del av ett större exempel för WindowsIdentity klassen.

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

Kommentarer

Värdet för parametern type används för att ange parametern AuthenticationType . Om type är null ställer säkerhetssystemet in AuthenticationType till Negotiate på Windows Vista och senare versioner av Windows operativsystem, och till Kerberos på tidigare versioner av Windows operativsystem. Säkerhetssystemet använder inte det här värdet. det är endast för informationsanvändning.

Du kan hämta token som representeras av userToken genom att anropa ohanterad kod, till exempel funktionen Windows API LogonUser. Släpp alltid userToken genom att anropa funktionen Windows API CloseHandle. Mer information om hur du anropar ohanterad kod finns i Använda ohanterade DLL-funktioner.

Gäller för