public static SamAliasHandle Create(SamAliasAccess access, SamDomainHandle domainHandle, string name, out int aliasId) { NtStatus status; UnicodeString nameStr; IntPtr handle; nameStr = new UnicodeString(name); try { if ((status = Win32.SamCreateAliasInDomain( domainHandle, ref nameStr, access, out handle, out aliasId )) >= NtStatus.Error) { Win32.Throw(status); } } finally { nameStr.Dispose(); } return(new SamAliasHandle(handle, true)); }
public static SamUserHandle Open(Sid sid, SamUserAccess access) { using (var dhandle = new SamDomainHandle(sid.DomainName, SamDomainAccess.Lookup)) { return(new SamUserHandle(dhandle, dhandle.LookupName(sid.Name), access)); } }
/// <summary> /// Opens a SAM user. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="userId">The relative ID of the user to open.</param> /// <param name="access">The desired access to the user.</param> public SamUserHandle(SamDomainHandle domainHandle, int userId, SamUserAccess access) { IntPtr handle; Win32.SamOpenUser( domainHandle, access, userId, out handle ).ThrowIf(); this.Handle = handle; }
/// <summary> /// Opens a SAM group. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="groupId">The relative ID of the group to open.</param> /// <param name="access">The desired access to the group.</param> public SamGroupHandle(SamDomainHandle domainHandle, int groupId, SamGroupAccess access) { IntPtr handle; Win32.SamOpenGroup( domainHandle, access, groupId, out handle ).ThrowIf(); this.Handle = handle; }
/// <summary> /// Opens a SAM alias. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="aliasId">The relative ID of the alias to open.</param> /// <param name="access">The desired access to the alias.</param> public SamAliasHandle(SamDomainHandle domainHandle, int aliasId, SamAliasAccess access) { IntPtr handle; Win32.SamOpenAlias( domainHandle, access, aliasId, out handle ).ThrowIf(); this.Handle = handle; }
/// <summary> /// Opens a SAM alias. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="aliasId">The relative ID of the alias to open.</param> /// <param name="access">The desired access to the alias.</param> public SamAliasHandle(SamDomainHandle domainHandle, int aliasId, SamAliasAccess access) { NtStatus status; IntPtr handle; if ((status = Win32.SamOpenAlias( domainHandle, access, aliasId, out handle )) >= NtStatus.Error) { Win32.Throw(status); } this.Handle = handle; }
/// <summary> /// Opens a SAM group. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="groupId">The relative ID of the group to open.</param> /// <param name="access">The desired access to the group.</param> public SamGroupHandle(SamDomainHandle domainHandle, int groupId, SamGroupAccess access) { NtStatus status; IntPtr handle; if ((status = Win32.SamOpenGroup( domainHandle, access, groupId, out handle )) >= NtStatus.Error) { Win32.Throw(status); } this.Handle = handle; }
/// <summary> /// Opens a SAM user. /// </summary> /// <param name="domainHandle">A handle to a SAM domain.</param> /// <param name="userId">The relative ID of the user to open.</param> /// <param name="access">The desired access to the user.</param> public SamUserHandle(SamDomainHandle domainHandle, int userId, SamUserAccess access) { NtStatus status; IntPtr handle; if ((status = Win32.SamOpenUser( domainHandle, access, userId, out handle )) >= NtStatus.Error) { Win32.Throw(status); } this.Handle = handle; }
public static SamUserHandle Create(SamUserAccess access, SamDomainHandle domainHandle, string name, out int userId) { IntPtr handle; UnicodeString nameStr = new UnicodeString(name); try { Win32.SamCreateUserInDomain( domainHandle, ref nameStr, access, out handle, out userId ).ThrowIf(); } finally { nameStr.Dispose(); } return(new SamUserHandle(handle, true)); }
public SamUserInformation GetInformation() { using (var data = this.GetInformation(UserInformationClass.UserAllInformation)) { UserAllInformation info = data.ReadStruct <UserAllInformation>(); return(new SamUserInformation( SamDomainHandle.ToDateTime(info.LastLogon), SamDomainHandle.ToDateTime(info.LastLogoff), SamDomainHandle.ToDateTime(info.PasswordLastSet), SamDomainHandle.ToDateTime(info.AccountExpires), SamDomainHandle.ToDateTime(info.PasswordCanChange), SamDomainHandle.ToDateTime(info.PasswordMustChange), info.UserName.Read(), info.FullName.Read(), info.AdminComment.Read(), info.UserComment.Read(), info.UserId, info.PrimaryGroupId, info.UserAccountControl, info.PasswordExpired )); } }
public SamUserHandle(SamDomainHandle domainHandle, string name, SamUserAccess access) : this(domainHandle, domainHandle.LookupName(name), access) { }