ASP.Net/Login Security/Membership
Содержание
Displaying the number of users online
<source lang="csharp">
<%@ Page Language="C#" %> <script runat="server">
protected void Page_Load(object sender, EventArgs e) { Label1.Text = Membership.GetNumberOfUsersOnline().ToString(); }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Login or Logout</title>
</head> <body>
<form id="form1" runat="server"> <asp:LoginStatus ID="LoginStatus1" Runat="server" />
<asp:LoginName ID="LoginName1" Runat="server" Font-Bold="True" Font-Size="XX-Large" />
There are <asp:Label ID="Label1" Runat="server" Text="0" /> users online.
</form>
</body> </html>
</source>
Membership.CreateUser
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="AddUser_aspx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server"> UserID<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox> Password<asp:TextBox ID="txtPassword1" runat="server" TextMode="Password"></asp:TextBox> Confirm Password<asp:TextBox ID="txtPassword2" runat="server" TextMode="Password"></asp:TextBox> Security Question<asp:TextBox ID="txtQn" runat="server"></asp:TextBox> Answer<asp:TextBox ID="txtAns" runat="server"></asp:TextBox> Email<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> <asp:Button ID="btnAddUser" runat="server" Text="Add User" />
</form>
</body> </html> File: Default.aspx.vb Imports System.Web.Security Partial Class AddUser_aspx
Inherits System.Web.UI.Page Protected Sub btnAddUser_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnAddUser.Click Dim IsCreated As MembershipCreateStatus If (txtPassword1.Text = txtPassword2.Text) Then Membership.CreateUser(txtUserID.Text, txtPassword1.Text, _ txtEmail.Text, txtQn.Text, txtAns.Text, True, IsCreated) Response.Write("Add user: " & IsCreated.ToString) Else Response.Write("Passwords do not match") End If End Sub
End Class
</source>
Membership.GetUser
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default_aspx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server"> <asp:LoginView ID="LoginView1" runat="server"> <LoggedInTemplate> You are logged in as <asp:LoginName ID="LoginName1" runat="server" /> <asp:LoginStatus ID="LoginStatus2" runat="server" /> </LoggedInTemplate> <AnonymousTemplate> <asp:LoginStatus ID="LoginStatus1" runat="server" /> </AnonymousTemplate> </asp:LoginView> <asp:PasswordRecovery ID="PasswordRecovery1" runat="server" BorderWidth="1px" BorderColor="Black" BorderStyle="Solid"> <MailDefinition From="a@a.ru" Subject="Your password request"/> <TitleTextStyle ForeColor="#FFFFFF" Font-Bold="True" BackColor="#6B696B" /> </asp:PasswordRecovery> </form>
</body> </html> File:Default.aspx.vb Partial Class Default_aspx
Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Membership.GetUser IsNot Nothing Then Response.Write("Time is " & Now) End If End Sub
End Class
</source>
User info
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="UserInfo_aspx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
UserID |
<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox> |
|
Current Password |
<asp:TextBox ID="txtCurrentPassword" runat="server" TextMode="Password"></asp:TextBox> |
|
New Password |
<asp:TextBox ID="txtNewPassword" runat="server" TextMode="Password"></asp:TextBox> |
<asp:Button ID="btnChangePassword" runat="server" Text="Change Password"/> |
Password Question |
<asp:TextBox ID="txtPasswordQuestion" runat="server"></asp:TextBox> |
<asp:Button ID="btnChangePasswordQuestion" runat="server" Text="Change Question"UseSubmitBehavior="False" /> |
Password Answer |
<asp:TextBox ID="txtPasswordAnswer" runat="server"></asp:TextBox> |
|
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> |
<asp:Button ID="btnUpdateEmail" runat="server" Text="Update Email"/> |
</form>
</body> </html> File: Default.aspx.vb
Partial Class UserInfo_aspx
Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Me.Load Dim user As MembershipUser user = Membership.GetUser Response.Write("You last login on: " & user.LastLoginDate & "
") Response.Write("Your account was created on: " & user.CreationDate & "
") Response.Write("Your password was last changed on: " & user.LastPasswordChangedDate & "
") If Not IsPostBack Then txtUserID.Text = user.UserName.ToString txtPasswordQuestion.Text = user.PasswordQuestion txtEmail.Text = user.Email End If End Sub Protected Sub btnChangePassword_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnChangePassword.Click Dim user As MembershipUser = Membership.GetUser If txtCurrentPassword.Text <> "" And _ (txtNewPassword.Text <> txtCurrentPassword.Text) And txtNewPassword.Text <> "" Then If user.ChangePassword(txtCurrentPassword.Text, txtNewPassword.Text) Then displayMessage("Password Changed.") Else displayMessage("Password Changed Failed.") End If Else displayMessage("Required fields missing") End If End Sub
Private Sub displayMessage(ByVal str As String) Response.Write(str) End Sub Protected Sub btnChangePasswordQuestion_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnChangePasswordQuestion.Click Dim user As MembershipUser = Membership.GetUser If txtCurrentPassword.Text <> "" And _ txtPasswordQuestion.Text <> "" And _ txtPasswordAnswer.Text <> "" Then If user.ChangePasswordQuestionAndAnswer( _ txtCurrentPassword.Text, _ txtPasswordQuestion.Text, _ txtPasswordAnswer.Text) Then displayMessage("Password Question Changed.") Else displayMessage("Password Question Failed.") End If Else displayMessage("Required fields missing") End If End Sub Protected Sub btnUpdateEmail_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnUpdateEmail.Click Dim user As MembershipUser = Membership.GetUser user.Email = txtEmail.Text Membership.UpdateUser(user) displayMessage("Email Updated.") End Sub
End Class
</source>