Beispiel #1
0
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            if (!authRequest.Credentials.ContainsKey("nickname"))
                return new AuthResponseMessage()
                {
                    ErrorMessage="No valid credentials provided.",
                    Success=false
                };

            string nickname=(string)authRequest.Credentials["nickname"];

            if (string.IsNullOrEmpty(nickname))
                return new AuthResponseMessage()
                {
                    ErrorMessage="No nickname specified.",
                    Success=false
                };

            if (AzureWorkerRole.WorkerRole.ActiveNicknames.Contains(nickname))
                return new AuthResponseMessage()
                {
                    ErrorMessage = string.Format("Nickname '{0}' is already in use.",nickname),
                    Success = false
                };

            return new AuthResponseMessage()
            {
                AuthenticatedIdentity = new GenericIdentity(nickname),
                Success = true
            };
        }
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Wenn keine Nachricht angegeben wurde ...
            if (authRequest == null)
            {
                // Ausnahme werfen
                throw new ArgumentNullException("authRequest");
            }

            // Windows-identität aus dem aktuellen Thread abrufen
            WindowsIdentity identity = Thread.CurrentPrincipal.Identity as WindowsIdentity;

            // Wenn kein Token angegeben wurde ...
            if (identity == null)
            {
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_WindowsTokenMissing);
            }

            // Wenn die Windows-Identität nicht authentifiziert ist ...
            if (!identity.IsAuthenticated)
            {
                // Authentifizierungsanfrage ablehnen
                return new AuthResponseMessage()
                       {
                           Success               = false,
                           ErrorMessage          = LanguageResource.UserNotAuthenicatedByWindows,
                           AuthenticatedIdentity = null
                       }
            }
            ;

            // Wenn es sich um einen Gast-Benutzer handelt ...
            if (identity.IsGuest || identity.IsAnonymous)
            {
                // Authentifizierungsanfrage ablehnen
                return new AuthResponseMessage()
                       {
                           Success               = false,
                           ErrorMessage          = "Anonyme Anmeldung und Gastzugriffe sind untersagt.",
                           AuthenticatedIdentity = null
                       }
            }
            ;

            // Erfolgsmeldung zurückgeben
            return(new AuthResponseMessage()
            {
                Success = true,
                ErrorMessage = string.Empty,
                AuthenticatedIdentity = new GenericIdentity(identity.Name)
            });
        }
    }
}
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Wenn keine Nachricht angegeben wurde ...
            if (authRequest == null)
                // Ausnahme werfen
                throw new ArgumentNullException("authRequest");

            // Wenn keine Anmeldeinformationen übergeben wurden ...
            if (authRequest.Credentials == null)
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_CredentialsMissing);

            // Wenn kein Benutzername angegeben wurde ...
            if (!authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_USERNAME))
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_UserNameMissing);

            // Wenn kein Passwort angegeben wurde ...
            if (!authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_PASSWORD))
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_PasswordMissing);

            // Benutzer und Kennwort lesen
            string userName = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_USERNAME] as string;
            string password = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_PASSWORD] as string;

            // Variable für Domäne
            string domain = ".";

            // Wenn eine Domäne angegeben wurde ...
            if (authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_DOMAIN))
                // Domäne übernehmen
                domain = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_DOMAIN] as string;

            // Wenn der Benutzer bekannt ist und das Kennwort stimmt ...
            if (ValidateWindowsCredentials(userName, password, domain))
                // Erfolgsmeldung zurückgeben
                return new AuthResponseMessage()
                {
                    Success = true,
                    ErrorMessage = string.Empty,
                    AuthenticatedIdentity = new GenericIdentity(userName)
                };

            // Fehlermeldung zurückgeben
            return new AuthResponseMessage()
            {
                Success = false,
                ErrorMessage = LanguageResource.InvalidCredentials,
                AuthenticatedIdentity = null
            };
        }
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Anonyme Identität erstellen
            IIdentity identity = WindowsIdentity.GetAnonymous();

            // Erfolgsmelung zurückgeben
            return new AuthResponseMessage()
            {
                ErrorMessage = string.Empty,
                Success = true,
                AuthenticatedIdentity = identity
            };
        }
Beispiel #5
0
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Anonyme Identität erstellen
            IIdentity identity = WindowsIdentity.GetAnonymous();

            // Erfolgsmelung zurückgeben
            return(new AuthResponseMessage()
            {
                ErrorMessage = string.Empty,
                Success = true,
                AuthenticatedIdentity = identity
            });
        }
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Wenn keine Nachricht angegeben wurde ...
            if (authRequest == null)
                // Ausnahme werfen
                throw new ArgumentNullException("authRequest");

            // Windows-identität aus dem aktuellen Thread abrufen
            WindowsIdentity identity = Thread.CurrentPrincipal.Identity as WindowsIdentity;

            // Wenn kein Token angegeben wurde ...
            if (identity == null)
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_WindowsTokenMissing);

            // Wenn die Windows-Identität nicht authentifiziert ist ...
            if (!identity.IsAuthenticated)
                // Authentifizierungsanfrage ablehnen
                return new AuthResponseMessage()
                {
                    Success = false,
                    ErrorMessage = LanguageResource.UserNotAuthenicatedByWindows,
                    AuthenticatedIdentity = null
                };

            // Wenn es sich um einen Gast-Benutzer handelt ...
            if (identity.IsGuest || identity.IsAnonymous)
                // Authentifizierungsanfrage ablehnen
                return new AuthResponseMessage()
                {
                    Success = false,
                    ErrorMessage = "Anonyme Anmeldung und Gastzugriffe sind untersagt.",
                    AuthenticatedIdentity = null
                };

            // Erfolgsmeldung zurückgeben
            return new AuthResponseMessage()
            {
                Success = true,
                ErrorMessage = string.Empty,
                AuthenticatedIdentity = new GenericIdentity(identity.Name)
            };
        }
Beispiel #7
0
        /// <summary>
        /// Authentifiziert einen bestimmten Benutzer anhand seiner Anmeldeinformationen.
        /// </summary>
        /// <param name="authRequest">Authentifizierungs-Anfragenachricht mit Anmeldeinformationen</param>
        /// <returns>Antwortnachricht des Authentifizierungssystems</returns>
        public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
        {
            // Wenn keine Nachricht angegeben wurde ...
            if (authRequest == null)
            {
                // Ausnahme werfen
                throw new ArgumentNullException("authRequest");
            }

            // Wenn keine Anmeldeinformationen übergeben wurden ...
            if (authRequest.Credentials == null)
            {
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_CredentialsMissing);
            }

            // Wenn kein Benutzername angegeben wurde ...
            if (!authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_USERNAME))
            {
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_UserNameMissing);
            }

            // Wenn kein Passwort angegeben wurde ...
            if (!authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_PASSWORD))
            {
                // Ausnahme werfen
                throw new SecurityException(LanguageResource.SecurityException_PasswordMissing);
            }

            // Benutzer und Kennwort lesen
            string userName = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_USERNAME] as string;
            string password = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_PASSWORD] as string;

            // Variable für Domäne
            string domain = ".";

            // Wenn eine Domäne angegeben wurde ...
            if (authRequest.Credentials.ContainsKey(AuthRequestMessage.CREDENTIAL_DOMAIN))
            {
                // Domäne übernehmen
                domain = authRequest.Credentials[AuthRequestMessage.CREDENTIAL_DOMAIN] as string;
            }

            // Wenn der Benutzer bekannt ist und das Kennwort stimmt ...
            if (ValidateWindowsCredentials(userName, password, domain))
            {
                // Erfolgsmeldung zurückgeben
                return new AuthResponseMessage()
                       {
                           Success               = true,
                           ErrorMessage          = string.Empty,
                           AuthenticatedIdentity = new GenericIdentity(userName)
                       }
            }
            ;

            // Fehlermeldung zurückgeben
            return(new AuthResponseMessage()
            {
                Success = false,
                ErrorMessage = LanguageResource.InvalidCredentials,
                AuthenticatedIdentity = null
            });
        }
    }
Beispiel #8
0
 public AuthResponseMessage Authenticate(AuthRequestMessage authRequest)
 {
     return new AuthResponseMessage()
     {
         ErrorMessage = string.Empty,
         Success = true,
         AuthenticatedIdentity = new JohnGaltIdentity()
     };
 }