コード例 #1
0
        public async Task <ForgotPasswordResult> ForgotPassword(ForgotPasswordInputModel model)
        {
            _logger.LogInformation(GetLogMessage("Forgot Password:{0};"), model.Email);

            var user = await _userManager.FindByEmailAsync(model.Email);

            var result = new ForgotPasswordResult();
            var code   = await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackUrl = _urlHelper.Action(
                "ResetPassword",
                "Account",
                values: new { code = code },
                protocol: _contextAccessor.HttpContext.Request.Scheme);

            if (code != null)
            {
                result.Succeeded = true;

                await Task.Run(() =>
                {
                    RaiseEvent(new ForgotPasswordEvent()
                    {
                        PersonId    = user.Id,
                        CallbackUrl = callbackUrl
                    });
                });
            }

            return(result);
        }
コード例 #2
0
ファイル: AppUserService.cs プロジェクト: meekal2/Grolo
        // this defines a public method named ForgotPassword that returns
        // an instance of ForgotPasswordResult and takes one parameter of type
        // ForgotPasswordRequest.


        public bool ForgotPassword(AppUserForgotPasswordRequest req)

        {
            ForgotPasswordResult forgotPassword = new ForgotPasswordResult();

            string ResetToken = null;
            string FirstName  = null;


            dataProvider.ExecuteNonQuery(


                "AppUser_Validate",
                (parameters) =>

            {
                parameters.AddWithValue("@Email", req.Email);


                parameters.Add("@FirstName", SqlDbType.NVarChar, 20).Direction = ParameterDirection.Output;

                parameters.Add("@ResetToken", SqlDbType.NVarChar, 50).Direction = ParameterDirection.Output;
            },
                // the stuff above goes to the database, after the database code is finsihed, gets the data or nulls.
                (parameters) =>

                //setting empty box to be filled when we get the data back from database.

            {
                FirstName  = parameters["@FirstName"].Value as string;
                ResetToken = parameters["@ResetToken"].Value as string;
            });


            if (ResetToken != null)
            {
                EmailSenderService.SendForgotPasswordEmail(FirstName, ResetToken, req.Email).Wait();

                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
        /// <inheritdoc />
        public Task <ForgotPasswordResult> StartForgotPasswordProcess(User user, bool isInNetwork)
        {
            var resetUrl = LdapPlugin.Instance.Configuration.PasswordResetUrl;

            if (string.IsNullOrEmpty(resetUrl))
            {
                throw new NotImplementedException();
            }

            resetUrl = resetUrl
                       .Replace("$userId", user.Id.ToString(), StringComparison.OrdinalIgnoreCase)
                       .Replace("$userName", user.Username, StringComparison.OrdinalIgnoreCase);

            var result = new ForgotPasswordResult
            {
                Action  = ForgotPasswordAction.PinCode,
                PinFile = resetUrl
            };

            return(Task.FromResult(result));
        }