/// <summary> /// Connect to a SAM server. /// </summary> /// <param name="server_name">The name of the server. Set to null for local connection.</param> /// <param name="desired_access">The desired access on the SAM server.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>The server connection.</returns> public static NtResult <SamServer> Connect(string server_name, SamServerAccessRights desired_access, bool throw_on_error) { UnicodeString name = string.IsNullOrEmpty(server_name) ? null : new UnicodeString(server_name); return(SecurityNativeMethods.SamConnect(name, out SafeSamHandle handle, desired_access, null).CreateResult(throw_on_error, () => new SamServer(handle, desired_access, server_name))); }
private SamServer(SafeSamHandle handle, SamServerAccessRights granted_access, string server_name) : base(handle, granted_access, SamUtils.SAM_SERVER_NT_TYPE_NAME, string.IsNullOrEmpty(server_name) ? "SAM Server" : $"SAM Server ({server_name})", server_name) { }
/// <summary> /// Connect to a SAM server. /// </summary> /// <param name="desired_access">The desired access on the SAM server.</param> /// <returns>The server connection.</returns> public static SamServer Connect(SamServerAccessRights desired_access) { return(Connect(null, desired_access)); }
/// <summary> /// Connect to a SAM server. /// </summary> /// <param name="server_name">The name of the server. Set to null for local connection.</param> /// <param name="desired_access">The desired access on the SAM server.</param> /// <returns>The server connection.</returns> public static SamServer Connect(string server_name, SamServerAccessRights desired_access) { return(Connect(server_name, desired_access, true).Result); }