Implement Forgot Password using AngularJS in ASP.Net

Last Reply 5 months ago By dharmendr

Posted 5 months ago

How to implement forgot password in angularjs in asp.net

Posted 5 months ago

Hi rani,

Using the below article i have created the example.

Implement Forgot Password (Password Recovery) and send password in Email in ASP.Net

Now please take its reference and correct your code.

HTML

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script type="text/javascript">
    var app = angular.module('MyApp', []);
    app.controller("MyController", function ($scope, $http, $window) {
        $scope.SendEmail = function () {
            $http.post("Default.aspx/SendEmail", JSON.stringify({ email: $scope.Email }), { headers: { 'Content-Type': 'application/json'} })
            .then(function (response) {
                $scope.Message = response.data.d;
            }, function error(response) {
                $scope.Message = response.responseText;
            });
        }
    });
</script>
<div ng-app="MyApp" ng-controller="MyController">
    <input type="text" name="email" ng-model="Email" />
    <input type="button" name="name" value="Send" ng-click="SendEmail()" />
    <br /><span style="color: Red;" ng-bind="Message"></span>
</div>

Namespaces

C#

using System.Configuration;
using System.Data.SqlClient;
using System.Net;
using System.Net.Mail;
using System.Web.Services;

VB.Net

Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Net
Imports System.Net.Mail
Imports System.Web.Services

Code

C#

[WebMethod]
public static string SendEmail(string email)
{
    string username = string.Empty;
    string password = string.Empty;
    string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    using (SqlConnection con = new SqlConnection(constr))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT Username, [Password] FROM Users WHERE Email = @Email"))
        {
            cmd.Parameters.AddWithValue("@Email", email);
            cmd.Connection = con;
            con.Open();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                if (sdr.Read())
                {
                    username = sdr["Username"].ToString();
                    password = sdr["Password"].ToString();
                }
            }
            con.Close();
        }
    }
    if (!string.IsNullOrEmpty(password))
    {
        MailMessage mm = new MailMessage("sender@gmail.com", email);
        mm.Subject = "Password Recovery";
        mm.Body = string.Format("Hi {0},<br /><br />Your password is {1}.<br /><br />Thank You.", username, password);
        mm.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.EnableSsl = true;
        NetworkCredential NetworkCred = new NetworkCredential();
        NetworkCred.UserName = "sender@gmail.com";
        NetworkCred.Password = "<Password>";
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Port = 587;
        smtp.Send(mm);

        return "Password has been sent to your email address.";
    }
    else
    {
        return "This email address does not match our records.";
    }
}

VB.Net

<WebMethod()>
Public Shared Function SendEmail(ByVal email As String) As String
    Dim username As String = String.Empty
    Dim password As String = String.Empty
    Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Using con As SqlConnection = New SqlConnection(constr)
        Using cmd As SqlCommand = New SqlCommand("SELECT Username, [Password] FROM Users WHERE Email = @Email")
            cmd.Parameters.AddWithValue("@Email", email)
            cmd.Connection = con
            con.Open()
            Using sdr As SqlDataReader = cmd.ExecuteReader()
                If sdr.Read() Then
                    username = sdr("Username").ToString()
                    password = sdr("Password").ToString()
                End If
            End Using
            con.Close()
        End Using
    End Using

    If Not String.IsNullOrEmpty(password) Then
        Dim mm As MailMessage = New MailMessage("sender@gmail.com", email)
        mm.Subject = "Password Recovery"
        mm.Body = String.Format("Hi {0},<br /><br />Your password is {1}.<br /><br />Thank You.", username, password)
        mm.IsBodyHtml = True
        Dim smtp As SmtpClient = New SmtpClient()
        smtp.Host = "smtp.gmail.com"
        smtp.EnableSsl = True
        Dim NetworkCred As NetworkCredential = New NetworkCredential()
        NetworkCred.UserName = "sender@gmail.com"
        NetworkCred.Password = "<Password>"
        smtp.UseDefaultCredentials = True
        smtp.Credentials = NetworkCred
        smtp.Port = 587
        smtp.Send(mm)
        Return "Password has been sent to your email address."
    Else
        Return "This email address does not match our records."
    End If
End Function