Beispiel #1
0
        public static LoginInformation AuthWindows(string username, string password)
        {
            var info = new LoginInformation();

            try
            {
                var domainName = Environment.UserDomainName;
                if (username.Contains("\\"))
                {
                    var splitName = username.Split('\\');
                    domainName = splitName[0];
                    username   = splitName[1];
                }
                using (var wim = new WindowsIdentityImpersonator(domainName, username, password))
                {
                    wim.BeginImpersonate();
                    {
                        info.IsAdmin  = WinApi.IsAdministratorByToken(WindowsIdentity.GetCurrent());
                        info.LoggedIn = true;
                        info.Message  = $"Logged in successfully as {username}";
                    }
                    wim.EndImpersonate();
                }
            }
            catch (Exception ex)
            {
                info.IsAdmin  = false;
                info.LoggedIn = false;
                info.Message  = ex.Message;
            }
            return(info);
        }
Beispiel #2
0
        private static void GetScriptContentsDataSetResult(RunnableScriptObject message)
        {
            Action impersonatedAction = () =>
            {
                ExecuteSqlScriptAndOutputResult(message, true);
            };

            if (message.UseWindowsAuthentication)
            {
                var winImpersonator = new WindowsIdentityImpersonator();
                winImpersonator.ImpersonateUserAndRunAction(
                    message.Domain,
                    message.Username,
                    message.Password,
                    impersonatedAction
                    );
            }
            else
            {
                ExecuteSqlScriptAndOutputResult(message, false);
            }
        }