public OIDCClientInformation RegisterClient(string RegistrationEndpoint, OIDCClientInformation clientMetadata, string TokenEndpointAuthMethod = "client_secret_basic") { // Make registration request OIDCClientRegistrationRequest registrationRequest = new OIDCClientRegistrationRequest(); registrationRequest.ApplicationType = clientMetadata.ApplicationType; registrationRequest.RedirectUris = clientMetadata.RedirectUris; registrationRequest.ResponseTypes = clientMetadata.ResponseTypes; registrationRequest.TokenEndpointAuthMethod = TokenEndpointAuthMethod; // Check error and store client information from OP WebRequest request = WebRequest.Create(RegistrationEndpoint); Dictionary <string, object> returnedJson = PostUrlContent(request, registrationRequest, true); if (returnedJson.Keys.Contains("error")) { OIDCResponseError error = new OIDCResponseError(); throw new OIDCException("Error while registering client: " + error.Error + "\n" + error.ErrorDescription); } OIDCClientInformation clientInformation = new OIDCClientInformation(); clientInformation.deserializeFromDynamic(returnedJson); return(clientInformation); }