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 }; }
/// <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) }; }
/// <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 }); } }
public AuthResponseMessage Authenticate(AuthRequestMessage authRequest) { return new AuthResponseMessage() { ErrorMessage = string.Empty, Success = true, AuthenticatedIdentity = new JohnGaltIdentity() }; }