WindowsIdentity クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class WindowsIdentity Implements IIdentity, ISerializable, IDeserializationCallback, IDisposable
[SerializableAttribute] [ComVisibleAttribute(true)] public class WindowsIdentity : IIdentity, ISerializable, IDeserializationCallback, IDisposable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class WindowsIdentity : IIdentity, ISerializable, IDeserializationCallback, IDisposable
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class WindowsIdentity implements IIdentity, ISerializable, IDeserializationCallback, IDisposable
SerializableAttribute ComVisibleAttribute(true) public class WindowsIdentity implements IIdentity, ISerializable, IDeserializationCallback, IDisposable


WindowsIdentity クラスのメンバの使用例を次に示します。アンマネージの Win32 LogonUser 関数を呼び出して Windows アカウント トークンを取得し、そのトークンで別のユーザーを偽装する方法を示す例については、WindowsImpersonationContext クラスのトピックを参照してください。
Imports System Imports System.Security.Principal Module Module1 Sub Main() ' Retrieve the Windows account token for the current user. Dim logonToken As IntPtr = LogonUser() ' Constructor implementations. IntPtrConstructor(logonToken) IntPtrStringConstructor(logonToken) IntPtrStringTypeConstructor(logonToken) IntPrtStringTypeBoolConstructor(logonToken) ' Property implementations. UseProperties(logonToken) ' Method implementations. GetAnonymousUser() ImpersonateIdentity(logonToken) ' Align interface and conclude application. Console.WriteLine(vbCrLf + "This sample completed " + _ "successfully; press Enter to exit.") Console.ReadLine() End Sub ' Create a WindowsIdentity object for the user represented by the ' specified Windows account token. Private Sub IntPtrConstructor(ByVal logonToken As IntPtr) ' Construct a WindowsIdentity object using the input account token. Dim windowsIdentity As New WindowsIdentity(logonToken) WriteLine("Created a Windows identity object named " + _ windowsIdentity.Name + ".") End Sub ' Create a WindowsIdentity object for the user represented by the ' specified account token and authentication type. 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 ' Create a WindowsIdentity object for the user represented by the ' specified account token, authentication type, and Windows account ' type. 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 ' Create a WindowsIdentity object for the user represented by the ' specified account token, authentication type, Windows account type, ' and Boolean authentication flag. 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 ' Access the properties of a WindowsIdentity object. Private Sub UseProperties(ByVal logonToken As IntPtr) Dim windowsIdentity As New WindowsIdentity(logonToken) Dim propertyDescription As String = "The Windows identity named " ' Retrieve the Windows logon name from the Windows identity object. propertyDescription += windowsIdentity.Name ' Verify that the user account is not considered to be an Anonymous ' account by the system. If Not windowsIdentity.IsAnonymous Then propertyDescription += " is not an Anonymous account" End If ' Verify that the user account has been authenticated by Windows. If (windowsIdentity.IsAuthenticated) Then propertyDescription += ", is authenticated" End If ' Verify that the user account is considered to be a System account by ' the system. If (windowsIdentity.IsSystem) Then propertyDescription += ", is a System account" End If ' Verify that the user account is considered to be a Guest account by ' the system. If (windowsIdentity.IsGuest) Then propertyDescription += ", is a Guest account" End If Dim authenticationType As String = windowsIdentity.AuthenticationType ' Append the authenication type to the output message. If (Not authenticationType Is Nothing) Then propertyDescription += (" and uses " + authenticationType) propertyDescription += (" authentication type.") End If WriteLine(propertyDescription) ' Display the SID for the owner. Console.Write("The SID for the owner is : ") Dim si As SecurityIdentifier si = windowsIdentity.Owner Console.WriteLine(si.ToString()) ' Display the SIDs for the groups the current user belongs to. Console.WriteLine("Display the SIDs for the groups the current user belongs to.") Dim irc As IdentityReferenceCollection Dim ir As IdentityReference irc = windowsIdentity.Groups For Each ir In irc Console.WriteLine(ir.Value) Next Dim token As TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel Console.WriteLine("The impersonation level for the current user is : " + token.ToString()) End Sub ' Retrieve the account token from the current WindowsIdentity object ' instead of calling the unmanaged LogonUser method in the advapi32.dll. Private Function LogonUser() As IntPtr Dim accountToken As IntPtr = WindowsIdentity.GetCurrent().Token Return accountToken End Function ' Get the WindowsIdentity object for an Anonymous user. Private Sub GetAnonymousUser() ' Retrieve a WindowsIdentity object that represents an anonymous ' Windows user. Dim windowsIdentity As WindowsIdentity windowsIdentity = windowsIdentity.GetAnonymous() End Sub ' Impersonate a Windows identity. Private Sub ImpersonateIdentity(ByVal logonToken As IntPtr) ' Retrieve the Windows identity using the specified token. Dim windowsIdentity As New WindowsIdentity(logonToken) ' Create a WindowsImpersonationContext object by impersonating the ' Windows identity. Dim impersonationContext As WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate() WriteLine("Name of the identity after impersonation: " + _ windowsIdentity.GetCurrent().Name + ".") ' Stop impersonating the user. impersonationContext.Undo() ' Check the identity. WriteLine("Name of the identity after performing an Undo on the " + _ "impersonation: " + windowsIdentity.GetCurrent().Name + ".") End Sub ' Write out message with carriage return to output textbox. Private Sub WriteLine(ByVal message As String) Console.WriteLine(message + vbCrLf) End Sub End Module
using System; using System.Security.Principal; class WindowsIdentityMembers { [STAThread] static void Main(string[] args) { // Retrieve the Windows account token for the current user. IntPtr logonToken = LogonUser(); // Constructor implementations. IntPtrConstructor(logonToken); IntPtrStringConstructor(logonToken); IntPtrStringTypeConstructor(logonToken); IntPrtStringTypeBoolConstructor(logonToken); // Property implementations. UseProperties(logonToken); // Method implementations. GetAnonymousUser(); ImpersonateIdentity(logonToken); Console.WriteLine("This sample completed successfully; " + "press Enter to exit."); Console.ReadLine(); } // Create a WindowsIdentity object for the user represented by the // specified Windows account token. private static void IntPtrConstructor(IntPtr logonToken) { // Construct a WindowsIdentity object using the input account token. WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); Console.WriteLine("Created a Windows identity object named " + windowsIdentity.Name + "."); } // Create a WindowsIdentity object for the user represented by the // specified account token and authentication type. 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 + "."); } // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type, and Windows account // type. 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 + "."); } // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type, Windows account type, and // Boolean authentication flag. 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 + "."); } // Access the properties of a WindowsIdentity object. private static void UseProperties(IntPtr logonToken) { WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); string propertyDescription = "The Windows identity named "; // Retrieve the Windows logon name from the Windows identity object. propertyDescription += windowsIdentity.Name; // Verify that the user account is not considered to be an Anonymous // account by the system. if (!windowsIdentity.IsAnonymous) { propertyDescription += " is not an Anonymous account"; } // Verify that the user account has been authenticated by Windows. if (windowsIdentity.IsAuthenticated) { propertyDescription += ", is authenticated"; } // Verify that the user account is considered to be a System account // by the system. if (windowsIdentity.IsSystem) { propertyDescription += ", is a System account"; } // Verify that the user account is considered to be a Guest account // by the system. if (windowsIdentity.IsGuest) { propertyDescription += ", is a Guest account"; } // Retrieve the authentication type for the String authenticationType = windowsIdentity.AuthenticationType; // Append the authenication type to the output message. if (authenticationType != null) { propertyDescription += (" and uses " + authenticationType); propertyDescription += (" authentication type."); } Console.WriteLine(propertyDescription); // Display the SID for the owner. Console.Write("The SID for the owner is : "); SecurityIdentifier si = windowsIdentity.Owner; Console.WriteLine(si.ToString()); // Display the SIDs for the groups the current user belongs to. Console.WriteLine("Display the SIDs for the groups the current user belongs to."); IdentityReferenceCollection irc = windowsIdentity.Groups; foreach (IdentityReference ir in irc) Console.WriteLine(ir.Value); TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel; Console.WriteLine("The impersonation level for the current user is : " + token.ToString()); } // Retrieve the account token from the current WindowsIdentity object // instead of calling the unmanaged LogonUser method in the advapi32.dll. private static IntPtr LogonUser() { IntPtr accountToken = WindowsIdentity.GetCurrent().Token; Console.WriteLine( "Token number is: " + accountToken.ToString()); return accountToken; } // Get the WindowsIdentity object for an Anonymous user. private static void GetAnonymousUser() { // Retrieve a WindowsIdentity object that represents an anonymous // Windows user. WindowsIdentity windowsIdentity = WindowsIdentity.GetAnonymous(); } // Impersonate a Windows identity. private static void ImpersonateIdentity(IntPtr logonToken) { // Retrieve the Windows identity using the specified token. WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); // Create a WindowsImpersonationContext object by impersonating the // Windows identity. WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate(); Console.WriteLine("Name of the identity after impersonation: " + WindowsIdentity.GetCurrent().Name + "."); Console.WriteLine(windowsIdentity.ImpersonationLevel); // Stop impersonating the user. impersonationContext.Undo(); // Check the identity name. Console.Write("Name of the identity after performing an Undo on the"); Console.WriteLine(" impersonation: " + WindowsIdentity.GetCurrent().Name); } }
using namespace System; using namespace System::Security::Principal; void IntPtrConstructor( IntPtr logonToken ); void IntPtrStringConstructor( IntPtr logonToken ); void IntPrtStringTypeBoolConstructor( IntPtr logonToken ); void IntPtrStringTypeConstructor( IntPtr logonToken ); void UseProperties( IntPtr logonToken ); IntPtr LogonUser(); void GetAnonymousUser(); void ImpersonateIdentity( IntPtr logonToken ); [STAThread] int main() { // Retrieve the Windows account token for the current user. IntPtr logonToken = LogonUser(); // Constructor implementations. IntPtrConstructor( logonToken ); IntPtrStringConstructor( logonToken ); IntPtrStringTypeConstructor( logonToken ); IntPrtStringTypeBoolConstructor( logonToken ); // Property implementations. UseProperties( logonToken ); // Method implementations. GetAnonymousUser(); ImpersonateIdentity( logonToken ); Console::WriteLine( "This sample completed successfully; " "press Enter to exit." ); Console::ReadLine(); } // Create a WindowsIdentity object for the user represented by the // specified Windows account token. void IntPtrConstructor( IntPtr logonToken ) { // Construct a WindowsIdentity object using the input account token. WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken ); Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name ); } // Create a WindowsIdentity object for the user represented by the // specified account token and authentication type. 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 ); } // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type and Windows account // type. 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 ); } // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type, Windows account type and // Boolean authentication flag. 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 ); } // Access the properties of a WindowsIdentity object. void UseProperties( IntPtr logonToken ) { WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken ); String^ propertyDescription = "The windows identity named "; // Retrieve the Windows logon name from the Windows identity object. propertyDescription = String::Concat( propertyDescription, windowsIdentity->Name ); // Verify that the user account is not considered to be an Anonymous // account by the system. if ( !windowsIdentity->IsAnonymous ) { propertyDescription = String::Concat( propertyDescription, ", is not an Anonymous account" ); } // Verify that the user account has been authenticated by Windows. if ( windowsIdentity->IsAuthenticated ) { propertyDescription = String::Concat( propertyDescription, ", is authenticated" ); } // Verify that the user account is considered to be a System account // by the system. if ( windowsIdentity->IsSystem ) { propertyDescription = String::Concat( propertyDescription, ", is a System account" ); } // Verify that the user account is considered to be a Guest account // by the system. if ( windowsIdentity->IsGuest ) { propertyDescription = String::Concat( propertyDescription, ", is a Guest account" ); } // Retrieve the authentication type for the String^ authenticationType = windowsIdentity->AuthenticationType; // Append the authenication type to the output message. if ( authenticationType != nullptr ) { propertyDescription = String::Format( "{0} and uses {1} authentication type.", propertyDescription, authenticationType ); } Console::WriteLine( propertyDescription ); } // Retrieve the account token from the current WindowsIdentity object // instead of calling the unmanaged LogonUser method in the advapi32.dll. IntPtr LogonUser() { IntPtr accountToken = WindowsIdentity::GetCurrent()->Token; return accountToken; } // Get the WindowsIdentity object for an Anonymous user. void GetAnonymousUser() { // Retrieve a WindowsIdentity object that represents an anonymous // Windows user. WindowsIdentity^ windowsIdentity = WindowsIdentity::GetAnonymous(); } // Impersonate a Windows identity. void ImpersonateIdentity( IntPtr logonToken ) { // Retrieve the Windows identity using the specified token. WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken ); // Create a WindowsImpersonationContext object by impersonating the // Windows identity. WindowsImpersonationContext^ impersonationContext = windowsIdentity->Impersonate(); Console::WriteLine( "Name of the identity after impersonation: {0}.", WindowsIdentity::GetCurrent()->Name ); // Stop impersonating the user. impersonationContext->Undo(); // Check the identity name. Console::Write( "Name of the identity after performing an Undo on the" ); Console::WriteLine( " impersonation: {0}", WindowsIdentity::GetCurrent()->Name ); }
import System.*; import System.Security.Principal.*; class WindowsIdentityMembers { /** @attribute STAThread() */ public static void main(String[] args) { // Retrieve the Windows account token for the current user. IntPtr logonToken = LogonUser(); // Constructor implementations. IntPtrConstructor(logonToken); IntPtrStringConstructor(logonToken); IntPtrStringTypeConstructor(logonToken); IntPrtStringTypeBoolConstructor(logonToken); // Property implementations. UseProperties(logonToken); // Method implementations. GetAnonymousUser(); ImpersonateIdentity(logonToken); Console.WriteLine("This sample completed successfully; " + "press Enter to exit."); Console.ReadLine(); } //main // Create a WindowsIdentity object for the user represented by the // specified Windows account token. private static void IntPtrConstructor(IntPtr logonToken) { // Construct a WindowsIdentity object using the input account token. WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); Console.WriteLine("Created a Windows identity object named " + windowsIdentity.get_Name() + "."); } //IntPtrConstructor // Create a WindowsIdentity object for the user represented by the // specified account token and authentication type. 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.get_Name() + "."); } //IntPtrStringConstructor // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type, and Windows account // type. 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.get_Name() + "."); } //IntPtrStringTypeConstructor // Create a WindowsIdentity object for the user represented by the // specified account token, authentication type, Windows account type, and // Boolean authentication flag. 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; boolean isAuthenticated = true; WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken , authenticationType, guestAccount, isAuthenticated); Console.WriteLine("Created a Windows identity object named " + windowsIdentity.get_Name() + "."); } //IntPrtStringTypeBoolConstructor // Access the properties of a WindowsIdentity object. private static void UseProperties(IntPtr logonToken) { WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); String propertyDescription = "The Windows identity named "; // Retrieve the Windows logon name from the Windows identity object. propertyDescription += windowsIdentity.get_Name(); // Verify that the user account is not considered to be an Anonymous // account by the system. if (!(windowsIdentity.get_IsAnonymous())) { propertyDescription += " is not an Anonymous account"; } // Verify that the user account has been authenticated by Windows. if (windowsIdentity.get_IsAuthenticated()) { propertyDescription += ", is authenticated"; } // Verify that the user account is considered to be a System account // by the system. if (windowsIdentity.get_IsSystem()) { propertyDescription += ", is a System account"; } // Verify that the user account is considered to be a Guest account // by the system. if (windowsIdentity.get_IsGuest()) { propertyDescription += ", is a Guest account"; } // Retrieve the authentication type for the String authenticationType = windowsIdentity.get_AuthenticationType(); // Append the authenication type to the output message. if (authenticationType != null) { propertyDescription += " and uses " + authenticationType; propertyDescription += " authentication type."; } Console.WriteLine(propertyDescription); } //UseProperties // Retrieve the account token from the current WindowsIdentity object // instead of calling the unmanaged LogonUser method in the advapi32.dll. private static IntPtr LogonUser() { IntPtr accountToken = WindowsIdentity.GetCurrent().get_Token(); return accountToken; } //LogonUser // Get the WindowsIdentity object for an Anonymous user. private static void GetAnonymousUser() { // Retrieve a WindowsIdentity object that represents an anonymous // Windows user. WindowsIdentity windowsIdentity = WindowsIdentity.GetAnonymous(); } //GetAnonymousUser // Impersonate a Windows identity. private static void ImpersonateIdentity(IntPtr logonToken) { // Retrieve the Windows identity using the specified token. WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken); // Create a WindowsImpersonationContext object by impersonating the // Windows identity. WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate(); Console.WriteLine("Name of the identity after impersonation: " + WindowsIdentity.GetCurrent().get_Name() + "."); // Stop impersonating the user. impersonationContext.Undo(); // Check the identity name. Console.Write("Name of the identity after performing an Undo on the"); Console.WriteLine(" impersonation: " + WindowsIdentity.GetCurrent().get_Name()); } //ImpersonateIdentity } //WindowsIdentityMembers

System.Security.Principal.WindowsIdentity


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (String, String)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim sUserPrincipalName As String Dim type As String Dim instance As New WindowsIdentity(sUserPrincipalName, type)


sUserPrincipalName が示す UPN は、そのユーザーのトークンを Win32 API の LsaLogonUser 関数の呼び出しによって取得するために使用されます。つまり、トークンはユーザーを識別するために使用されます。与えられた UPN を使用してログオンできないために、例外が返される場合もあります。
![]() |
---|
このコンストラクタは、Windows Server 2003 ドメインに参加しているコンピュータでの使用を想定しています。その他のドメイン タイプでは、例外がスローされます。 |


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (IntPtr)
アセンブリ: mscorlib (mscorlib.dll 内)




WindowsIdentity コンストラクタを使用し、現在の Windows アカウント トークンで表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを作成するコード例を次に示します。WindowsIdentity オブジェクトは、トークン所有者のセキュリティ識別子、および現在のユーザーが属しているグループの ID 参照を取得する場合に使用します。
Imports System Imports System.Security.Principal Class WindowsIdentityMembers <STAThread()> _ Shared Sub Main(ByVal args() As String) Dim accountToken As IntPtr accountToken = WindowsIdentity.GetCurrent().Token Dim windowsIdentity1 As New WindowsIdentity(accountToken) Dim si As SecurityIdentifier = windowsIdentity1.Owner Console.WriteLine(si.ToString()) si = windowsIdentity1.User Console.WriteLine(si.ToString()) Dim irc As IdentityReferenceCollection = windowsIdentity1.Groups Dim ir As IdentityReference For Each ir In irc Console.WriteLine(ir.Value) Next ir Dim token As TokenImpersonationLevel = windowsIdentity1.ImpersonationLevel Console.WriteLine(token.ToString()) End Sub 'Main End Class 'WindowsIdentityMembers
using System; using System.Security.Principal; class WindowsIdentityMembers { [STAThread] static void Main(string[] args) { IntPtr accountToken = WindowsIdentity.GetCurrent().Token; WindowsIdentity windowsIdentity = new WindowsIdentity(accountToken); SecurityIdentifier si = windowsIdentity.Owner; Console.WriteLine(si.ToString()); si = windowsIdentity.User; Console.WriteLine(si.ToString()); IdentityReferenceCollection irc = windowsIdentity.Groups; foreach (IdentityReference ir in irc) { Console.WriteLine(ir.Value); } TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel; Console.WriteLine(token.ToString()); } }


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (IntPtr, String, WindowsAccountType, Boolean)
アセンブリ: mscorlib (mscorlib.dll 内)

Public Sub New ( _ userToken As IntPtr, _ type As String, _ acctType As WindowsAccountType, _ isAuthenticated As Boolean _ )
Dim userToken As IntPtr Dim type As String Dim acctType As WindowsAccountType Dim isAuthenticated As Boolean Dim instance As New WindowsIdentity(userToken, type, acctType, isAuthenticated)
public WindowsIdentity ( IntPtr userToken, string type, WindowsAccountType acctType, bool isAuthenticated )
public: WindowsIdentity ( IntPtr userToken, String^ type, WindowsAccountType acctType, bool isAuthenticated )
public WindowsIdentity ( IntPtr userToken, String type, WindowsAccountType acctType, boolean isAuthenticated )
public function WindowsIdentity ( userToken : IntPtr, type : String, acctType : WindowsAccountType, isAuthenticated : boolean )
- acctType
WindowsAccountType 値の 1 つ。


通常、userToken で表されるトークンは、Win32 API の LogonUser 関数の呼び出しなど、アンマネージ コードの呼び出しによって取得します。アンマネージ コードの呼び出しの詳細については、「アンマネージ DLL 関数の処理」を参照してください。

WindowsIdentity コンストラクタを使用し、指定した Windows アカウント トークン、指定した認証タイプ、指定した Windows アカウント タイプ、および指定した認証ステータスで表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを作成するコード例を次に示します。このコード例は、WindowsIdentity クラスのトピックで取り上げているコード例の一部分です。
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)
string authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType.Guest; bool isAuthenticated = true; WindowsIdentity windowsIdentity = new WindowsIdentity( logonToken, authenticationType, guestAccount, isAuthenticated);
String^ authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType::Guest; bool isAuthenticated = true; WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount,isAuthenticated );
String authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType.Guest; boolean isAuthenticated = true; WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken , authenticationType, guestAccount, isAuthenticated);


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (SerializationInfo, StreamingContext)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim info As SerializationInfo Dim context As StreamingContext Dim instance As New WindowsIdentity(info, context)



Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ

名前 | 説明 |
---|---|
WindowsIdentity (IntPtr) | 指定した Windows アカウント トークンによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (String) | 指定した UPN (User Principal Name) で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (IntPtr, String) | 指定した Windows アカウント トークンと指定した認証の種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (SerializationInfo, StreamingContext) | SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (String, String) | 指定した UPN (User Principal Name) と指定した認証の種類で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (IntPtr, String, WindowsAccountType) | 指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity (IntPtr, String, WindowsAccountType, Boolean) | 指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの種類、および指定した認証ステータスによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |

WindowsIdentity コンストラクタ (String)
アセンブリ: mscorlib (mscorlib.dll 内)



sUserPrincipalName が示す UPN は、そのユーザーのトークンを Win32 API の LsaLogonUser 関数の呼び出しによって取得するために使用されます。つまり、トークンはユーザーを識別するために使用されます。与えられた UPN を使用してログオンできないために、例外が返される場合もあります。
![]() |
---|
このコンストラクタは、Windows Server 2003 ドメインだけに参加しているコンピュータでの使用を想定しています。その他のドメイン タイプでは、例外がスローされます。 |


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (IntPtr, String)
アセンブリ: mscorlib (mscorlib.dll 内)




WindowsIdentity コンストラクタを使用し、指定した Windows アカウント トークンおよび指定した認証タイプで表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを作成するコード例を次に示します。このコード例は、WindowsIdentity クラスのトピックで取り上げているコード例の一部分です。
Dim authenticationType = "WindowsAuthentication" Dim windowsIdentity As _ New WindowsIdentity(logonToken, authenticationType)
string authenticationType = "WindowsAuthentication"; WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken, authenticationType);
String^ authenticationType = "WindowsAuthentication"; WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType );


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity コンストラクタ (IntPtr, String, WindowsAccountType)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim userToken As IntPtr Dim type As String Dim acctType As WindowsAccountType Dim instance As New WindowsIdentity(userToken, type, acctType)
public function WindowsIdentity ( userToken : IntPtr, type : String, acctType : WindowsAccountType )
- acctType
WindowsAccountType 値の 1 つ。



WindowsIdentity コンストラクタを使用し、指定した Windows アカウント トークン、指定した認証タイプ、および指定した Windows アカウント タイプで表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを作成するコード例を次に示します。このコード例は、WindowsIdentity クラスのトピックで取り上げているコード例の一部分です。
Dim authenticationType As String = "WindowsAuthentication" Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest Dim windowsIdentity As _ New WindowsIdentity(logonToken, authenticationType, guestAccount)
string authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType.Guest; WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken, authenticationType, guestAccount);
String^ authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType::Guest; WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount );
String authenticationType = "WindowsAuthentication"; WindowsAccountType guestAccount = WindowsAccountType.Guest; WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken , authenticationType, guestAccount);


Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsIdentity プロパティ

名前 | 説明 | |
---|---|---|
![]() | AuthenticationType | ユーザーを識別するために使用する認証の種類を取得します。 |
![]() | Groups | 現在の Windows ユーザーが属しているグループを取得します。 |
![]() | ImpersonationLevel | ユーザーの偽装レベルを取得します。 |
![]() | IsAnonymous | システムによってユーザー アカウントが匿名アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | IsAuthenticated | ユーザーが Windows により認証されているかどうかを示す値を取得します。 |
![]() | IsGuest | システムによってユーザー アカウントが Guest アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | IsSystem | システムによってユーザー アカウントが System アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | Name | ユーザーの Windows ログオン名を取得します。 |
![]() | Owner | トークン所有者のセキュリティ識別子 (SID) を取得します。 |
![]() | Token | ユーザーの Windows アカウント トークンを取得します。 |
![]() | User | ユーザーのセキュリティ識別子 (SID) を取得します。 |

WindowsIdentity メソッド

名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 WindowsIdentity によって使用されているリソースを解放します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetAnonymous | 匿名のユーザーを表す WindowsIdentity オブジェクトを返します。 |
![]() | GetCurrent | オーバーロードされます。 現在の Windows ユーザーを表す WindowsIdentity オブジェクトを返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Impersonate | オーバーロードされます。 コードによって別の Windows ユーザーを偽装できるようにします。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 WindowsIdentity によって使用されているリソースを解放します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Runtime.Serialization.IDeserializationCallback.OnDeserialization | ISerializable インターフェイスを実装し、逆シリアル化が完了したときに逆シリアル化イベントによってコールバックされます。 |
![]() | System.Runtime.Serialization.ISerializable.GetObjectData | この実行コンテキストのインスタンスを再作成するのに必要な論理コンテキスト情報で、SerializationInfo オブジェクトを設定します。 |

WindowsIdentity メンバ
WindowsIdentity データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | AuthenticationType | ユーザーを識別するために使用する認証の種類を取得します。 |
![]() | Groups | 現在の Windows ユーザーが属しているグループを取得します。 |
![]() | ImpersonationLevel | ユーザーの偽装レベルを取得します。 |
![]() | IsAnonymous | システムによってユーザー アカウントが匿名アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | IsAuthenticated | ユーザーが Windows により認証されているかどうかを示す値を取得します。 |
![]() | IsGuest | システムによってユーザー アカウントが Guest アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | IsSystem | システムによってユーザー アカウントが System アカウントとして識別されているかどうかを示す値を取得します。 |
![]() | Name | ユーザーの Windows ログオン名を取得します。 |
![]() | Owner | トークン所有者のセキュリティ識別子 (SID) を取得します。 |
![]() | Token | ユーザーの Windows アカウント トークンを取得します。 |
![]() | User | ユーザーのセキュリティ識別子 (SID) を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 WindowsIdentity によって使用されているリソースを解放します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetAnonymous | 匿名のユーザーを表す WindowsIdentity オブジェクトを返します。 |
![]() | GetCurrent | オーバーロードされます。 現在の Windows ユーザーを表す WindowsIdentity オブジェクトを返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Impersonate | オーバーロードされます。 コードによって別の Windows ユーザーを偽装できるようにします。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 WindowsIdentity によって使用されているリソースを解放します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Runtime.Serialization.IDeserializationCallback.OnDeserialization | ISerializable インターフェイスを実装し、逆シリアル化が完了したときに逆シリアル化イベントによってコールバックされます。 |
![]() | System.Runtime.Serialization.ISerializable.GetObjectData | この実行コンテキストのインスタンスを再作成するのに必要な論理コンテキスト情報で、SerializationInfo オブジェクトを設定します。 |

- WindowsIdentityのページへのリンク