public static SafeNativeHandle GetTokenLinkedToken(SafeNativeHandle hToken) { using (SafeMemoryBuffer tokenInfo = GetTokenInformation(hToken, NativeHelpers.TokenInformationClass.TokenLinkedToken)) { return(new SafeNativeHandle(Marshal.ReadIntPtr(tokenInfo.DangerousGetHandle()))); } }
public static TokenElevationType GetTokenElevationType(SafeNativeHandle hToken) { using (SafeMemoryBuffer tokenInfo = GetTokenInformation(hToken, NativeHelpers.TokenInformationClass.TokenElevationType)) { return((TokenElevationType)Marshal.ReadInt32(tokenInfo.DangerousGetHandle())); } }
public static List <PrivilegeInfo> GetTokenPrivileges(SafeNativeHandle hToken) { using (SafeMemoryBuffer tokenInfo = GetTokenInformation(hToken, NativeHelpers.TokenInformationClass.TokenPrivileges)) { NativeHelpers.TOKEN_PRIVILEGES tokenPrivs = (NativeHelpers.TOKEN_PRIVILEGES)Marshal.PtrToStructure( tokenInfo.DangerousGetHandle(), typeof(NativeHelpers.TOKEN_PRIVILEGES)); NativeHelpers.LUID_AND_ATTRIBUTES[] luidAttrs = new NativeHelpers.LUID_AND_ATTRIBUTES[tokenPrivs.PrivilegeCount]; PtrToStructureArray(luidAttrs, IntPtr.Add(tokenInfo.DangerousGetHandle(), Marshal.SizeOf(tokenPrivs.PrivilegeCount))); return(luidAttrs.Select(la => new PrivilegeInfo(la)).ToList()); } }
public static TokenStatistics GetTokenStatistics(SafeNativeHandle hToken) { using (SafeMemoryBuffer tokenInfo = GetTokenInformation(hToken, NativeHelpers.TokenInformationClass.TokenStatistics)) { TokenStatistics tokenStats = (TokenStatistics)Marshal.PtrToStructure( tokenInfo.DangerousGetHandle(), typeof(TokenStatistics)); return(tokenStats); } }
public static SecurityIdentifier GetTokenUser(SafeNativeHandle hToken) { using (SafeMemoryBuffer tokenInfo = GetTokenInformation(hToken, NativeHelpers.TokenInformationClass.TokenUser)) { NativeHelpers.TOKEN_USER tokenUser = (NativeHelpers.TOKEN_USER)Marshal.PtrToStructure( tokenInfo.DangerousGetHandle(), typeof(NativeHelpers.TOKEN_USER)); return(new SecurityIdentifier(tokenUser.User.Sid)); } }