asp.net Login控件基本属性及事件说明
Login系列控件是微软为了简化我们的开发过程,为我们进行常规的安全开发提供块捷途径。
Login系列控件包含下列控件:
Login 登录控件
LoginName 用于显示用户名的控件
LoginStatus 根据用户的登录状态显示不同的信息(登录,注销)
LoginView 根据登录状态的不同显示不同的模板
CreateUserWizard 提供了一个注册用户账号的向导模板
ChangePassword 更改密码
PasswordRecovery 当忘记密码的时候用于取回密码
以上几种控件的底层都与MembershipApi集成的,这几种控件之间是相互独立的,可以单独使用也可以搭配成一个较完整的安全管理。
Login控件:
登录界面,包含“用户名”、“密码”和登录按钮。
属性:
DestinationPageUrl 用户登录成功后转高的网页
FailureAction 登录失败进行的操作,Refresh和RedirectToLoginPage两种操作
RememberMeSet 设置“记住我”复选控。
CreateUserUrl 注册用户帐号的页面
HelpPageUrl 说明页面的URL
PasswordRecoveryUrl 密码恢复页面的URL
Login控件提供了一系列的预定义的样式,可以从“智能菜单”中点击“自动套用格式...”进行选择。也可以选择“转换为模板”,自己设置要显示的样式。
当你输入用户名和密码进行登录的时候,登录控件会自动去数据库中验证输入的用户名和密码。
自定义Authentication事件处理:
Login控件底层会使用Membership.Validate()和FormsAuthentication.RedirectFromLogin()方法进行验证,但有的时候我们己经有了现成的用户帐号和数据库的话,那如何做登录?
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
string str = WebConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select count(*) from login where username = @u and password = @p";
SqlParameter param;
param = new SqlParameter("@u", Login1.UserName);
cmd.Parameters.Add(param);
param = new SqlParameter("@p",Login1.Password);
cmd.Parameters.Add(param);
int n = (int)cmd.ExecuteScalar();
conn.Close();
if (n > 0)
e.Authenticated = true;
else
e.Authenticated = false;
}
自定义Login控件模板
现有的Login控件可能显得太单调,如果你想自定义登录控件应当如何操作?单击智能标签“转换为模板”,这样就可以设置你自己的控件了。帐号的TextBox的id属性必须设置为:UserName
密码的TextBox的id属性必须设置为:Password
登录按钮的CommandName属性必须设为Login
LoginName控件:
把LoginName控件拖到界面中就可以完成了。
LoginStatus控件:
LoginStatus控件是个超链接,未登录的时候显示“登录”,登录以后显示“注销”,以提示用户登录或注销,其背后的运作原理是Request.IsAuthentication或User.Identity.IsAuthenticated作为判断依据。如果登录失败则转到Web.Config文件中指定的页面,如果登录成功则转到LoginStatus控件所在的网页。
属性:
LoginText:设置或获取登录文字
LogoutText:设置或获取注销文字
LoginImageUrl:设置登录超链的图片。
LogoutImageUrl:设置注销超链的图片。
LogoutAction:注销后的操作,Refresh、Redirect、RedirectToLoginPage
LogoutPageUrl:如果LogoutAction属性设为Redirect,则注销后转到LogoutPageUrl所设置的网址
LoginView控件:
默认有两个模板:AnonymousTemplate和LoggedInTemplate,分别为匿名用户和登录后的两个模板,这样就可以为匿名用户和登录用户显示不同的界面了。
另外LoginView控件还可以根据不同的角色创建不同的模板。选择智能标签的“编辑RoleGroups”可以添加新的模板,然后在视图中选择要编辑的角色模板就可以定义角色模板的样式了。
注意:如果一个用户有多个角色的话,那么,当他登录后就会LoginView控件显示他的第一个角色所对应的模板,而不是显示他所有角色的模板。
CreateUserWizard控件:
CreateUserWizard控件提供了一个用户注册的界面,它是一个向导控件,可以自己套用样式,该控件说简单,它也简单,说复杂也真够复杂的。只所以说它简单,是因为当你只是创建简单的注册页面时,将它拖到页面上设置一下样式就可以使用了。要说它复杂呢,是因为它的灵活性太强了,你可以自定义模板,加入自己的一些用户个性化信息。 ChangePassword控件:
ChangePassword控件就是一个用户更改密码的控件,但只允许通过身份验证的用户更改,并且要求输入原来的旧密码。
PasswordRecovery控件:
当用户忘记密码的时候可以通过系统的安全问题,若回答正确系统就会自动寄一封Email给该帐户的用户,里面附有密码。
这种功能先决条件是你的网站要用SMTP服务设置
在Web.Config中设置:
<system.net>
<mailSettings>
<smtp from="grayworm@tom.com">
<network host="192.168.1.2" password="" userName="" />
</smtp>
</mailSettings>
</system.net>
或者:
“网站”-“asp.net配置”,开asp.net web应用程序管理器,再选择“应用程序”-“配置SMTP电子邮件设置”,在新的页面中设置你的邮件内容就可以了。
----------------------------------------
Login控件的事件:
Login 控件可以使用 Web.config 文件中的设置来自动管理成员资格验证。不过,如果应用程序要求您自定义控件的工作方式,或者您要了解 Login 控件事件与页生命周期的关联方式,可以使用下表中列出的事件。
控件事件 典型使用
LoggingIn
在回发期间,当页的 LoadComplete 事件发生后就会引发该事件。它标记登录过程的起点。
对必须在验证过程开始前发生的任务使用该事件。
Authenticate
该事件在 LoggingIn 事件之后引发。
使用该事件来重写或增强 Login 控件的默认验证行为。
LoggedIn
该事件在验证用户名和密码后引发。
使用该事件来重定向到另一个页或动态设置控件中的文本。如果出现错误或验证失败,就不会发生该事件。
LoginError
如果验证失败,将引发该事件。
使用该事件来设置控件中的问题解释文本或将用户定向到不同的页。
-----------------------------
保存用户的登录状态:登陆成功后把用户名写入cookies
FormsAuthentication.SetAuthCookie(userName, false);
在其它网页使用User.Identity.Name获取用户的名称;
http://blog.sina.com.cn/s/blog_573be9bc0100gp6m.html
asp.net Login控件基本属性及事件说明的更多相关文章
- Asp.net用户控件和委托事件
在Asp.net系统制作过程中,门户类型的网站,我们可以用DIV+CSS+JS+Ajax全部搞定,但是一旦遇到界面元素比较复杂的时候,还是UserControl比较方便一些,各种封装,各种处理,然后拖 ...
- Asp.net textbox 控件 的 onTextChange 事件
<asp:TextBox ID="txt_MailType" runat="server" OnTextChanged="exitMailTyp ...
- ASP.NET关于Login控件使用 (转)
分类: C# 2011-02-21 10:38 4599人阅读 评论(0) 收藏 举报 loginasp.netstringurlserverbutton 今天上网找了一些关于Login控件的使用资料 ...
- 关于asp:login控件和验证码的问题?(转)
1.验证码页面添加.2.将这验证码页面添加到login控件中:拖曳一Login控件,将之切换到模式下,在Html源文件中在表格中密码那行后添加: <tr> <td style= ...
- ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件
原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...
- ASP.Net TextBox控件只允许输入数字
原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ...
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- 关于ASP.net TextBox控件的失去焦点后触发其它事件
编写人:CC阿爸 2015-2-02 今天在这里,我想与大家一起分享如何处理的ASP.net TextBox控件的失去焦点后触发其它事件的问题,在此做个小结,以供参考.有兴趣的同学,可以一同探讨与学习 ...
- Asp.Net2.0下C#环境 Login控件实现用户登录
原文:Asp.Net2.0下C#环境 Login控件实现用户登录 一.前台显示效果 二.前台代码 <asp:Login ID="Login1" run ...
随机推荐
- HDU 4293 Groups
模型挺好的dp题,其实这道题就是建一个模型然后就很容易想到递推过程了,我们可以把每个人的描述,存到数组a中,a[l][r]表示左边有l个,到第r个这个人所在一层停止...然后就可以写出转移状态方程了. ...
- 谈论multistage text input(中国输入法)下一个UITextView内容长度的限制
我以前写<如何更好地限制UITextField输入长度>.接使用 UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotifica ...
- perl 使用cookie
use Net::SMTP; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; use HTTP::Response; use Enc ...
- c/c++使用VS2013连接MySQL与ubuntu下c链接mysql
vs连接数据库事实上就是将mysql数据库.h头文件接口.lib链接文件和dll运行文件增加到项目中.以下是配置怎样增加. 转于http://www.cnblogs.com/justinzhang/a ...
- Delphi中WebBrowser自动填表模板
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...
- minidump详细介绍
Effective minidump 简介 在过去几年里,崩溃转储(crash dump)成为了调试工作的一个重要部分.如果软件在客户现场或者测试实验室发生故障,最有价值的解决方式是能够创建一个故障瞬 ...
- Java回调理解 (step by step)
在网上搜索了很多篇关于java回调函数的文章,自己也来试了一下写了这篇博客,可能有些地方理解不到位,烦请各位大大指正. 在计算机程序设计中.回调函数.或简称回调.是指通过函数參数传递到其他代码的,某一 ...
- SQLite中如何用api操作BLOB类型的字段
在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等.对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理 ...
- [Android学习笔记]ScrollView的使用
竖直滚动使用ScrollView 水平滚动使用HorizontalScrollView 如果需要禁止ScrollView的滚动,则需要扩展ScrollView类,重写onTouchEvent方法.
- python glob 用通配符查找指定目录中的文件 - 开源中国社区
python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件