private NtToken GetLogonToken(TokenAccessRights desired_access) { IEnumerable <UserGroup> groups = null; if (AdditionalGroups != null && AdditionalGroups.Length > 0) { groups = AdditionalGroups.Select(s => new UserGroup(s, GroupAttributes.Enabled | GroupAttributes.EnabledByDefault | GroupAttributes.Mandatory)); } using (NtToken token = TokenUtils.GetLogonUserToken(User, Domain, Password, LogonType, groups)) { if (desired_access == TokenAccessRights.MaximumAllowed) { return(token.Duplicate()); } return(token.Duplicate(desired_access)); } }
private NtToken GetLogonToken(TokenAccessRights desired_access, string user, string domain, string password, SecurityLogonType logon_type) { IEnumerable <UserGroup> groups = null; if (AdditionalGroups != null && AdditionalGroups.Length > 0) { groups = AdditionalGroups.Select(s => new UserGroup(s, GetAttributes(s))); } using (NtToken token = TokenUtils.GetLogonUserToken(user, domain, password, logon_type, groups)) { if (desired_access == TokenAccessRights.MaximumAllowed) { return(token.Duplicate()); } return(token.Duplicate(desired_access)); } }