Quantcast
Channel: Security
Viewing all articles
Browse latest Browse all 4737

Password Reset with ASP.Net Identity

$
0
0

Hi everyone,

I'm trying to implement a password reset method:

protected void ResetPassword(object sender, EventArgs e)
{
    var userStore = new UserStore<IdentityUser>();
    var userManager = new UserManager<IdentityUser>(userStore);

    // Register Token Provider
    var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("Account");
    userManager.UserTokenProvider = new Microsoft.AspNet.Identity.Owin.DataProtectorTokenProvider<IdentityUser>(provider.Create("PasswordReset"));

    var user = userManager.FindByName(UserName.Text);
            
    if (user != null)
    {
        string passwordResetToken = userManager.GeneratePasswordResetToken(user.Id);
        //Now what do I do with this token?

        LoginForm.Visible = false;
        LoginStatus.Visible = true;
        lblStatus.Text = "A password token has been emailed to you.";
    }
    else
    {
        lblStatus.Text = "Invalid username.";
        lblStatus.ForeColor = Color.Red;
        LoginStatus.Visible = true;
    }
}

I've been following instructions on various websites but can't figure out what I should do with the password reset token that has been generated. According to Account Confirmation and Password Recovery with ASP.NET Identity, I'm supposed to do like:

var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
var callbackUrl = Url.Action("ResetPassword", "Account", new { UserId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a>"); 

My questions:

1. What does Url.Action do?

2. I was getting an error "The name 'Url' does not exist in the current context." So I added the namespace 

using System.Security.Policy;

..but now I get "System.Security.Policy.Url does not contain a definition for 'Action'.

3. How do I implement just a simple method where a temporary password is emailed to the user and she just needs to enter in the temporary password, then enter her new password?

Thanks very much.


Viewing all articles
Browse latest Browse all 4737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>