Esempio n. 1
0
        /// <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)));
        }
Esempio n. 2
0
 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)
 {
 }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
 /// <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);
 }