示例#1
0
        private void SetIotDpsCertificate()
        {
            string   certificate = string.Empty;
            FileInfo fileInfo    = new FileInfo(this.Path);

            switch (fileInfo.Extension.ToLower(CultureInfo.InvariantCulture))
            {
            case ".cer":
                var certificateByteContent = AzureSession.Instance.DataStore.ReadFileAsBytes(this.Path);
                certificate = Convert.ToBase64String(certificateByteContent);
                break;

            case ".pem":
                certificate = AzureSession.Instance.DataStore.ReadFileAsText(this.Path);
                break;

            default:
                certificate = this.Path;
                break;
            }

            certificate = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(certificate));

            VerificationCodeRequest verificationCodeRequest = new VerificationCodeRequest();

            verificationCodeRequest.Certificate = certificate;

            CertificateResponse certificateResponse = this.IotDpsClient.DpsCertificate.VerifyCertificate(this.CertificateName, this.Etag, verificationCodeRequest, this.ResourceGroupName, this.Name);

            this.WriteObject(IotDpsUtils.ToPSCertificateResponse(certificateResponse));
        }
        public async Task <VerificationCodeResult> VerifyEmail([FromBody] VerificationCodeRequest request)
        {
            var result = new VerificationCodeResult();

            if (request == null || !request.Key.IsValidPartitionOrRowKey())
            {
                return(result);
            }

            var existingCode = await _verificationCodesRepository.GetCodeAsync(request.Key);

            if (existingCode != null && existingCode.Code == request.Code)
            {
                result.Code = existingCode;
                AccountExistsModel accountExistsModel = await _clientAccountClient.IsTraderWithEmailExistsAsync(existingCode.Email, null);

                result.IsEmailTaken = accountExistsModel.IsClientAccountExisting;

                if (result.IsEmailTaken)
                {
                    await _verificationCodesRepository.DeleteCodesAsync(existingCode.Email);
                }
            }

            return(result);
        }
示例#3
0
        public IActionResult CheckSMSVerificationCodeByRegistrationToken([FromBody] VerificationCodeRequest request, [FromHeader(Name = "RegistrationToken")] string registrationToken)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <bool>();
                response.ResultCode = ResultCodes.normal;
                RegistrationCustomerData data;

                if (!string.IsNullOrEmpty(request.VerificationCode))
                {
                    data = new RegistrationCustomerData()
                    {
                        VerificationCode = request.VerificationCode, RegistrationToken = registrationToken
                    };
                    var result = _registrationManager.ContinueRegistrationProcess(data, RegistrationProcessSteps.CheckSMSVerificationCodeByRegistrationToken);

                    response.Description = result.Description;

                    if (result.ResultCode == ResultCode.Normal)
                    {
                        response.Result = true;
                    }
                    else if (result.ResultCode == ResultCode.ValidationError)
                    {
                        response.ResultCode = ResultCodes.validationError;
                    }
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
示例#4
0
        public ResultJson ModifyUserPhone(VerificationCodeRequest request)
        {
            ResultJson result = new ResultJson();
            var        users  = CustomerOper.Instance.Select(new Customer {
                phone = request.Phone
            });

            if (users.Count != 0)
            {
                result.HttpCode = 300;
                result.Message  = "该手机号码已被注册";
                return(result);
            }
            var usermodel = CacheForModelUser.Instance.GetUserInfo(request.UserId);

            if (usermodel == null)
            {
                result.HttpCode = 301;
                result.Message  = Enum_Message.UserNameOrPasswordNotRightMessage.Enum_GetString();
            }
            else
            {
                var verification = CacheForModelUser.Instance.GetUserVerificationCode(request.Phone);
                if (verification == null)
                {
                    result.HttpCode = 500;
                    result.Message  = "请重新发送验证码";
                }
                else
                {
                    if (request.VerificaCode == verification)
                    {
                        usermodel.phone = request.Phone;
                        if (CustomerOper.Instance.Update(usermodel))
                        {
                            CacheForModelUser.Instance.ClearUserVerificationCode(request.Phone);
                            var user = CacheForModelUser.Instance.GetUserInfo(request.UserId);
                            result.HttpCode = 200;
                            result.Message  = Enum_Message.SuccessMessage.Enum_GetString();
                        }
                        else
                        {
                            result.HttpCode = 300;
                            result.Message  = Enum_Message.DataNotSuccessMessage.Enum_GetString();
                        }
                    }
                    else
                    {
                        result.HttpCode = 400;
                        result.Message  = "验证码错误";
                    }
                }
            }
            return(result);
        }
示例#5
0
        public IHttpActionResult VerificationCode(VerificationCodeRequest request)
        {
            _commands.SendMobileVerificationCode(PlayerId);

            var uri = UriRootToProfileInfo + PlayerId;

            return(Created(uri, new VerificationCodeResponse()
            {
                UriToPlayerWhomMobileVerificationCodeWasSent = uri
            }));
        }
示例#6
0
        public ResultJson VerificationCode(VerificationCodeRequest request)
        {
            ResultJson result    = new ResultJson();
            var        usermodel = CacheForModelUser.Instance.GetUserInfo(request.UserId);

            if (usermodel == null)
            {
                result.HttpCode = 301;
                result.Message  = Enum_Message.UserNameOrPasswordNotRightMessage.Enum_GetString();
            }
            else
            {
                if (usermodel.phone.ToLower() == request.Phone.ToLower())
                {
                    var verification = CacheForModelUser.Instance.GetUserVerificationCode(request.Phone);
                    if (verification == null)
                    {
                        result.HttpCode = 500;
                        result.Message  = "请重新发送验证码";
                    }
                    else
                    {
                        if (request.VerificaCode == verification)
                        {
                            result.HttpCode = 200;
                            result.Message  = "验证成功";
                            CacheForModelUser.Instance.ClearUserVerificationCode(request.Phone);
                        }
                        else
                        {
                            result.HttpCode = 400;
                            result.Message  = "验证码错误";
                        }
                    }
                }
                else
                {
                    result.HttpCode = 300;
                    result.Message  = Enum_Message.PasswordInvalidMessage.Enum_GetString();
                }
            }
            return(result);
        }
 public async Task <VerificationCodeResponse> VerificationCode(VerificationCodeRequest request)
 {
     return(await _memberApiProxy.VerificationCodeAsync(request));
 }
示例#8
0
 /// <summary>
 /// Verify certificate's private key possession.
 /// </summary>
 /// <remarks>
 /// Verifies the certificate's private key possession by providing the leaf
 /// cert issued by the verifying pre uploaded certificate.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// The mandatory logical name of the certificate, that the provisioning
 /// service uses to access.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 /// <param name='request'>
 /// The name of the certificate
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group name.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Provisioning service name.
 /// </param>
 /// <param name='certificatename'>
 /// Common Name for the certificate.
 /// </param>
 /// <param name='certificaterawBytes'>
 /// Raw data of certificate.
 /// </param>
 /// <param name='certificateisVerified'>
 /// Indicates if the certificate has been verified by owner of the private key.
 /// </param>
 /// <param name='certificatepurpose'>
 /// Describe the purpose of the certificate. Possible values include:
 /// 'clientAuthentication', 'serverAuthentication'
 /// </param>
 /// <param name='certificatecreated'>
 /// Certificate creation time.
 /// </param>
 /// <param name='certificatelastUpdated'>
 /// Certificate last updated time.
 /// </param>
 /// <param name='certificatehasPrivateKey'>
 /// Indicates if the certificate contains private key.
 /// </param>
 /// <param name='certificatenonce'>
 /// Random number generated to indicate Proof of Possession.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CertificateResponse> VerifyCertificateAsync(this IDpsCertificateOperations operations, string certificateName, string ifMatch, VerificationCodeRequest request, string resourceGroupName, string provisioningServiceName, string certificatename = default(string), byte[] certificaterawBytes = default(byte[]), bool?certificateisVerified = default(bool?), string certificatepurpose = default(string), System.DateTime?certificatecreated = default(System.DateTime?), System.DateTime?certificatelastUpdated = default(System.DateTime?), bool?certificatehasPrivateKey = default(bool?), string certificatenonce = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.VerifyCertificateWithHttpMessagesAsync(certificateName, ifMatch, request, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
示例#9
0
 /// <summary>
 /// Verify certificate's private key possession.
 /// </summary>
 /// <remarks>
 /// Verifies the certificate's private key possession by providing the leaf
 /// cert issued by the verifying pre uploaded certificate.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// The mandatory logical name of the certificate, that the provisioning
 /// service uses to access.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 /// <param name='request'>
 /// The name of the certificate
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group name.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Provisioning service name.
 /// </param>
 /// <param name='certificatename'>
 /// Common Name for the certificate.
 /// </param>
 /// <param name='certificaterawBytes'>
 /// Raw data of certificate.
 /// </param>
 /// <param name='certificateisVerified'>
 /// Indicates if the certificate has been verified by owner of the private key.
 /// </param>
 /// <param name='certificatepurpose'>
 /// Describe the purpose of the certificate. Possible values include:
 /// 'clientAuthentication', 'serverAuthentication'
 /// </param>
 /// <param name='certificatecreated'>
 /// Certificate creation time.
 /// </param>
 /// <param name='certificatelastUpdated'>
 /// Certificate last updated time.
 /// </param>
 /// <param name='certificatehasPrivateKey'>
 /// Indicates if the certificate contains private key.
 /// </param>
 /// <param name='certificatenonce'>
 /// Random number generated to indicate Proof of Possession.
 /// </param>
 public static CertificateResponse VerifyCertificate(this IDpsCertificateOperations operations, string certificateName, string ifMatch, VerificationCodeRequest request, string resourceGroupName, string provisioningServiceName, string certificatename = default(string), byte[] certificaterawBytes = default(byte[]), bool?certificateisVerified = default(bool?), string certificatepurpose = default(string), System.DateTime?certificatecreated = default(System.DateTime?), System.DateTime?certificatelastUpdated = default(System.DateTime?), bool?certificatehasPrivateKey = default(bool?), string certificatenonce = default(string))
 {
     return(operations.VerifyCertificateAsync(certificateName, ifMatch, request, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce).GetAwaiter().GetResult());
 }
示例#10
0
文件: Program.cs 项目: itomych/NSaga
        private void RequestVerificationCode(Guid correlationId)
        {
            var verificationRequest = new VerificationCodeRequest(correlationId);

            sagaMediator.Consume(verificationRequest);
        }
示例#11
0
        public async Task <VerificationCodeResponse> VerificationCodeAsync(VerificationCodeRequest request)
        {
            var result = await HttpClient.SecurePostAsJsonAsync(Token, "api/Player/VerificationCode", request);

            return(await EnsureApiResult <VerificationCodeResponse>(result));
        }