Authorization and Authentication remember me is not working in asp.net
I tried this way but when user logout if it was remember me than it should checkbox checked but here it is not happening.
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
If Me.Page.User.Identity.IsAuthenticated Then
FormsAuthentication.SignOut()
Response.Redirect("~/Login.aspx")
End If
End If
End Sub
Protected Sub ValidateUser(sender As Object, e As EventArgs)
Dim userId As Integer = 0
Dim roles As String = String.Empty
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand("Validate_User")
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Username", Login1.UserName)
cmd.Parameters.AddWithValue("@Password", Md5FromString(Login1.Password))
cmd.Connection = con
con.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
reader.Read()
userId = Convert.ToInt32(reader("UserId"))
roles = reader("Roles").ToString()
con.Close()
End Using
Dim errorlbl As Label = Login1.FindControl("lblerror")
Select Case userId
Case -1
errorlbl.Text = "Username and/or password is incorrect."
Exit Select
Case -2
errorlbl.Text = "Account has not been activated."
Exit Select
Case Else
Dim ticket As New FormsAuthenticationTicket(1, Login1.UserName, DateTime.Now, DateTime.Now.AddMinutes(2880), Login1.RememberMeSet, roles, FormsAuthentication.FormsCookiePath)
Dim hash As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName, hash)
If ticket.IsPersistent Then
cookie.Expires = ticket.Expiration
End If
Session("rolename") = roles
Response.Cookies.Add(cookie)
Response.Redirect(FormsAuthentication.GetRedirectUrl(Login1.UserName, Login1.RememberMeSet))
Exit Select
End Select
End Using
End Sub
Public Function Md5FromString(ByVal Source As String) As String
Dim Bytes() As Byte
Dim sb As New StringBuilder()
If String.IsNullOrEmpty(Source) Then
Throw New ArgumentNullException
End If
Bytes = Encoding.Default.GetBytes(Source)
Bytes = MD5.Create().ComputeHash(Bytes)
For val As Integer = 0 To Bytes.Length - 1
sb.Append(Bytes(val).ToString("x2"))
Next
Return sb.ToString()
End Function
ASPX.WB
<asp:Login ID="Login1" runat="server" OnAuthenticate="ValidateUser">
<LayoutTemplate>
<div class="form-group">
<div class="input-group">
<label for="username" style="letter-spacing: 1px;">Enter your Username </label>
<asp:TextBox ID="UserName" runat="server" CssClass="form-control"></asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="rfUserName" Display="Dynamic" runat="server" SetFocusOnError="true" Style="font-size: 10px; text-transform: uppercase; letter-spacing: 1px;" ControlToValidate="UserName" ValidationGroup="Login1" ForeColor="Red"> User Name is required.</asp:RequiredFieldValidator>
</div>
<div class="form-group">
<div class="input-group">
<label for="username" style="letter-spacing: 1px;">Enter your Password </label>
<asp:TextBox ID="Password" TextMode="Password" runat="server" CssClass="form-control"></asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="rfPassword" Display="Dynamic" runat="server" SetFocusOnError="true" Style="font-size: 10px; text-transform: uppercase; letter-spacing: 1px;" ControlToValidate="Password" ForeColor="Red" ValidationGroup="Login1"> Password is required.</asp:RequiredFieldValidator>
</div>
<div class="form-group">
<asp:Label runat="server" ID="lblerror" ForeColor="Red" Style="font-size: 10px; text-transform: uppercase; letter-spacing: 1px;"></asp:Label>
</div>
<div class="form-group">
<asp:CheckBox runat="server" Text="Remember me" ID="RememberMe"></asp:CheckBox>
</div>
<div class="form-group">
<asp:Button ID="LoginButton" runat="server" class="btn btn-primary" CommandName="Login" Text="SUBMIT" ValidationGroup="Login1" />
</div>
</LayoutTemplate>
</asp:Login>