private void ParseAuthorizationHeaderValue(string headerValue) { try { this.AuthorizationMessage = AuthorizationMessageFactory.Build(headerValue); this.AuthorizationType = this.AuthorizationMessage.AuthorizationType; if (this.AuthorizationMessage is BasicAuthorizationMessage) { this.UserName = ((BasicAuthorizationMessage)this.AuthorizationMessage).UserName; } else if (this.AuthorizationMessage is NtlmAuthorizeMessage) { this.SetNtlmValues(this.AuthorizationMessage as NtlmAuthorizeMessage); } else if (this.AuthorizationMessage is KerberosAuthorizeMessage) { this.SetKerberosValues(this.AuthorizationMessage as KerberosAuthorizeMessage); } else { this.ErrorMessage = "Unexpected authorization header"; } } catch (Exception ex) { this.ErrorMessage = "Unexpected authorization header"; } }
protected bool ValidateAuthorizationMessage(AuthorizationMessage message) { // validate that the connection is secure if (!Context.IsSecureConnection) { throw new CoflnetException("connection_insecure", "The connection is not secure, please try again with a secure connection."); } // validate that the device is local and the secrets match Device connectingDevice = DeviceController.instance.GetDevice(message.deviceId); if (connectingDevice == null || connectingDevice.Secret != message.deviceSecret) { throw new CoflnetException("device_secret_invalid", "The device doesn't exist on this server or the secrets don't match"); } // return(true); }