Login控件(带实例)
1.功能
Login控件是一个复合控件,它提供对网站上的用户进行身份验证所需的,所有常见的UI元素。所有登录方案都需要以下三个元素:
● 用于标识用户的惟一用户名。
● 用于验证用户标识的密码。
● 用于将登录信息发送到服务器的登录按钮。
Login 控件还提供以下支持附加功能的可选UI 元素:
● 密码提示链接。
● 用于在两次会话之间保留登录信息的“记住我”复选框。
● 为那些在登录时遇到问题的用户提供的帮助链接。
● 将用户重定向到注册页的“注册新用户”链接。
● 出现在登录窗体上的说明文本。
● 在用户未填写用户名或密码字段而直接单击登录按钮时,出现的自定义错误文本。
● 登录失败时出现的自定义错误文本。
● 登录成功时发生的自定义操作。
● 在用户已登录到站点时隐藏登录控件的方法
2.属性
Login控件部分常用属性及说明,如表1所示。
表1 Login控件最常用的属性及说明
|
属性 |
描述 |
|
CreateUserIconUrl |
获取显示在新用户的注册页链接旁边的图像的位置 |
|
CreateUserText |
获取或设置新用户注册页的链接文本 |
|
CreateUserUrl |
获取或设置新用户注册页的 URL |
|
DestinationPageUrl |
获取或设置在登录尝试成功时向用户显示的页面的 URL |
|
FailureAction |
获取或设置当登录尝试失败时发生的操作 |
|
FailureText |
获取或设置当登录尝试失败时显示的文本 |
|
HelpPageText |
获取或设置登录帮助页链接的文本 |
|
HelpPageUrl |
获取或设置登录帮助页的URL |
|
LoginButtonText |
获取或设置Login控件的登录按钮的文本 |
|
LoginButtonType |
获取或设置在呈现Login按钮时使用的按钮类型 |
|
MembershipProvider |
获取或设置控件使用的成员资格数据提供程序的名称 |
|
Orientatio |
获取或设置一个值,该值指定页面上Login控件的元素的位置 |
|
PasswordLabelText |
获取或设置 Password文本框的标签文本 |
|
PasswordRecoveryText |
获取或设置密码恢复页链接的文本 |
|
PasswordRecoveryUrl |
获取或设置密码恢复页的 URL |
|
PasswordRequiredErrorMessage |
获取或设置当密码字段为空时在 ValidationSummary控件中显示的错误信息 |
|
RememberMeText |
获取或设置“记住我”复选框的标签文本 |
|
TextLayout |
指定 Login 控件的每个标签相对于其关联文本框的位置 |
|
TitleText |
获取或设置Login控件的标题 |
|
UserName |
获取用户输入的用户名 |
|
UserNameLabelText |
获取或设置UserName文本框的标签文本 |
|
UserNameRequiredErrorMessage |
获取或设置当用户名字段为空时在ValidationSummary 控件中显示的错误信息 |
|
ValidatorTextStyle |
获取对 Style 属性集合的引用,这些属性定义与Login控件使用的验证程序关联的错误信息的外观 |
|
VisibleWhenLoggedIn |
获取或设置一个值,该值指示在验证用户身份后是否显示 Login 控件 |
下面对比较重要的属性进行详细介绍。
(1)CreateUserText属性
此属性获取或设置新用户注册页的链接文本。
语法:
| public virtual string CreateUserText { get; set; } |
属性值:
新用户注册页的链接文本。默认为 Empty。
说明:CreateUserText 属性包含站点注册页的链接文本。在CreateUserUrl属性中指定注册页的URL。如果CreateUserUrl为空,则向用户显示 CreateUserText属性中的文本,但不以链接的形式显示。如果CreateUserText属性为空,则不向用户提供注册页链接
(2)CreateUserUrl属性
此属性用来设置新用户注册页的URL,它包含网站新用户注册页的URL。
语法:
| public virtual string CreateUserUrl { get; set; } |
属性值:
新用户注册页的 URL。默认为 Empty。
说明:CreateUserText属性包含链接使用的文本。如果CreateUserText属性为空,则不向用户提供注册页链接。
(3)DestinationPageUrl属性
此属性获取或设置在登录尝试成功时向用户显示的页面的URL。
语法:
| public virtual string DestinationPageUrl { get; set; } |
属性值:
登录尝试成功时用户被重定向到的页面的 URL。默认为Empty。
例如:登录成功要转向“Default2.aspx”页面。代码如下:
| Login1.DestinationPageUrl = "~/Default2.aspx"; |
(4)FailureAction属性
此属性获取或设置当登录尝试失败时发生的操作。
语法:
| public virtual LoginFailureAction FailureAction { get; set; } |
属性值:
LoginFailureAction枚举值之一。默认为Refresh。
LoginFailureAction枚举值及说明如表5所示。
表5 LoginFailureAction枚举值及说明
|
枚举值 |
说明 |
|
RedirectToLoginPage |
将用户重定向到站点的配置文件(Machine.config 和 Web.config)中所定义的登录页 |
|
Refresh |
刷新当前页,以便 Login控件可以显示错误消息 |
(5)HelpPageUrl属性
此属性获取或设置登录帮助页的URL。
语法:
| public virtual string HelpPageUrl { get; set; } |
属性值:
登录帮助页的URL。默认为Empty。
说明:HelpPageUrl 属性包含网站的登录帮助页的URL。HelpPageText属性包含用于链接的文本。如果HelpPageUrl为空,则向用户显示HelpPageText属性中的文本,但不以链接的形式显示。如果HelpPageText属性为空,则不向用户提供登录帮助页链接。
(6)HelpPageText属性
此属性获取或设置登录帮助页链接的文本
语法:
| public virtual string HelpPageText { get; set; } |
属性值:
登录帮助页链接的文本。默认为Empty。
(7)LoginButtonType属性
此属性获取或设置在呈现Login按钮时使用的按钮类型。
语法:
| public virtual ButtonType LoginButtonType { get; set; } |
属性值:
ButtonType枚举值之一。默认为Button。ButtonType枚举值及说明如表6所示。
表6 ButtonType 枚举值及说明
|
枚举值 |
说明 |
|
Button |
命令按钮 |
|
Image |
显示图像的按钮 |
|
Link |
超链接样式的按钮 |
(8)PasswordRecoveryUrl属性
此属性获取或设置密码恢复页的URL。
语法:
| public virtual string PasswordRecoveryText { get; set; } |
属性值:
密码恢复页链接的文本。默认为Empty。
(9)PasswordRequiredErrorMessage属性
此属性获取或设置当用户名字段为空时在ValidationSummary控件中显示的错误信息
语法:
| public virtual string PasswordRequiredErrorMessage { get; set; } |
属性值:
当密码字段为空时,在ValidationSummary控件中显示的错误信息。默认值是“密码”。
(10)RememberMeText 属性
此属性获取或设置“记住我”复选框的标签文本。
语法:
| public virtual string RememberMeText { get; set; } |
属性值:
“记住我”复选框的标签文本。默认为下“次记住我”。
(11)UserNameRequiredErrorMessag属性
获取或设置当用户名字段为空时,在ValidationSummary控件中显示的错误信息。
语法:
| public virtual string UserNameRequiredErrorMessage { get; set; } |
属性值:
当用户名字段为空时在ValidationSummary 控件中显示的错误信息。默认为“用户名”。
(12)VisibleWhenLoggedIn属性
此属性获取或设置一个值,该值指示在验证用户身份后是否显示Login控件。
语法:
| public virtual bool VisibleWhenLoggedIn { get; set; } |
属性值:
如果在验证用户身份后隐藏Login控件,则为false;否则为true。默认为true。
本例使用Login控件,实现成员资格用户登录网站验证用户名和密码。示例运行,输入用户名“mr”,密码“mr.soft”登录网站。
Login 控件设计代码如下。
|
<asp:Login ID="Login1" runat="server"
BackColor="#F7F7DE" BorderColor="#CCCC99"
BorderStyle="Solid" BorderWidth="1px" DestinationPageUrl="~/Default.aspx" Font-Names="Verdana" Font-Size="10pt"> <TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="#FFFFFF" /> </asp:Login> |
3.事件
Login控件的常用事件及说明,如表7所示。
表7 Login控件的常用事件及说明
|
事件 |
描述 |
|
Authenticate |
验证用户的身份后出现 |
|
LoggedIn |
在用户登录到网站并进行身份验证后出现 |
|
LoggingIn |
在用户未进行身份验证而提交登录信息时出现 |
|
LoginError |
当检测到登录错误时出现 |
下面对比较重要的事件进行详细介绍。
(1)Authenticate事件
验证用户的身份后出现。当用户使用Login控件登录到网站时,引发Authenticate事件。自定义身份验证方案可以使用Authenticate事件对用户进行身份验证。定义身份验证方案应该将Authenticated属性设置为 true,以指示已验证用户的身份。
语法:
| public event AuthenticateEventHandlerAuthenticate |
说明:在用户提交登录信息后,Login控件先引发LoggingIn事件,然后引发Authenticate事件,最后引发LoggedIn事件。
本例使用Login 控件的Authenticate事件,实现自定义用户登录网站。示例运行,输入用户名“System”,密码“111”登录网站。
|
protected void Login1_Authenticate1(object sender,
AuthenticateEventArgs e) { System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection("server=ZHY\\ZHY;uid=sa;pwd=;database=aspnetdb"); con.Open(); string strSql = "select * from tb_01 where userid='" + Login1.UserName.ToString() + "' and username='" + Login1.Password + "'"; System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(strSql, con); System.Data.SqlClient.SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) { e.Authenticated = true;//通过验证 } else { e.Authenticated = false; } dr.Close(); con.Close(); } |
4.典型实例
本例实现登录控件的综合应用,使用Login控件实现成员资格用户登录网站。运行实例“Login.aspx”页,输入用户名“soAsp_net”,密码“111”登录网站。
主要代码如下。
|
<asp:Login ID="Login1" runat="server"
BackColor="#F7F7DE" BorderColor="#CCCC99"
BorderStyle="Solid"
BorderWidth="1px"
Font-Names="Verdana" Font-Size="10pt"
DestinationPageUrl="~/Index.aspx">
<TitleTextStyle BackColor="#6B696B" Font-Bold="True"
ForeColor="White" /> </asp:Login> |
摘自放眼望世界的博客

浙公网安备 33010602011771号