Exemple #1
0
        public IServerAuthenticationCredential Authenticate(IClientAuthenticationCredential clientCredentials)
        {
            SSPIServerAuthenticationCredential serverAuthenticationCredential = new SSPIServerAuthenticationCredential();

            serverAuthenticationCredential.Token        = new AuthToken();
            serverAuthenticationCredential.Token.Status = Common.Security.SSPI.SecurityStatus.OK;
            return(serverAuthenticationCredential);
        }
Exemple #2
0
        public IServerAuthenticationCredential OpenConfigurationSession(string cluster, IClientAuthenticationCredential clientCredentials)
        {
            SSPIServerAuthenticationCredential serverAuthenticationCredential = new SSPIServerAuthenticationCredential();

            serverAuthenticationCredential.Token        = new AuthToken();
            serverAuthenticationCredential.Token.Status = Common.Security.SSPI.SecurityStatus.OK;
            return(serverAuthenticationCredential);
        }
        private IServerAuthenticationCredential AuthenticateWindowsClient(SSPIClientAuthenticationCredential clientCredentials)
        {
            AuthToken clientAuthToken;

            if (clientCredentials == null || clientCredentials.Token == null)
            {
                clientCredentials = new SSPIClientAuthenticationCredential();
                clientAuthToken   = new AuthToken();
            }
            else
            {
                clientAuthToken = clientCredentials.Token;
            }
            SSPIServerAuthenticationCredential serverAuthenticationCredential = new SSPIServerAuthenticationCredential();

            serverAuthenticationCredential.Token        = new AuthToken();
            serverAuthenticationCredential.Token.Status = SecurityStatus.None;
            do
            {
                Byte[] clientToken = null;
                if (_clientSecurityContext == null)
                {
                    InitializeSecurityContext();
                }
                clientAuthToken.Status  = this._clientSecurityContext.Init(serverAuthenticationCredential.Token.Token, out clientToken);
                clientAuthToken.Token   = clientToken;
                clientCredentials.Token = clientAuthToken;

                if (clientAuthToken.Status == SecurityStatus.ContinueNeeded || (clientAuthToken.Status == SecurityStatus.OK && clientAuthToken.Token != null))
                {
                    ManagementCommand command = GetManagementCommand(ConfigurationCommandUtil.MethodName.OpenConfigurationSession, 1);
                    command.Parameters.AddParameter(clientCredentials);
                    try
                    {
                        serverAuthenticationCredential = ExecuteCommandOnMgtServer(command, true) as SSPIServerAuthenticationCredential;
                    }
                    catch (SecurityException exc)
                    {
                        if (LoggerManager.Instance.SecurityLogger != null && LoggerManager.Instance.SecurityLogger.IsErrorEnabled)
                        {
                            LoggerManager.Instance.StorageLogger.Error("Authenticating Database Server", exc.Message);
                        }
                    }
                }
                if (serverAuthenticationCredential.Token.Status == SecurityStatus.SecurityDisabled || (clientCredentials.Token.Status == SecurityStatus.OK && serverAuthenticationCredential == null))
                {
                    break;
                }
            } while (clientAuthToken.Status == SecurityStatus.ContinueNeeded);
            _clientSecurityContext = null;
            return(serverAuthenticationCredential);
        }