public AuthorizationResult Authorize(HttpRequestBase request) { var requestData = new AuthorizeRequestData(request.Form); if (!VerifyDataIsIntact(requestData)) { return(AuthorizationResult.MissingData); } if (!VerifyTimestamp(requestData.Timestamp)) { return(AuthorizationResult.Expired); } var consumer = _consumerRepository.GetConsumerByPublicKey(requestData.PublicKey); if (consumer == null) { return(AuthorizationResult.NonExistantConsumer); } if (!VerifySignature(consumer.PrivateKey, requestData)) { return(AuthorizationResult.BadSignature); } return(AuthorizationResult.Success); }