asp.net Login控件基本属性及事件说明:
Login系列控件是微软为了简化我们的开发过程,为我们进行常规的安全开发提供块捷途径。
Login系列控件包含下列控件:
Login 登录控件
LoginName 用于显示用户名的控件
LoginStatus 根据用户的登录状态显示不同的信息(登录,注销)
LoginView 根据登录状态的不同显示不同的模板
CreateUserWizard 提供了一个注册用户账号的向导模板
ChangePassword 更改密码
PasswordRecovery 当忘记密码的时候用于取回密码
以上几种控件的底层都与MembershipApi集成的,这几种控件之间是相互独立的,可以单独使用也可以搭配成一个较完整的安全管理。
Login控件:
登录界面,包含“用户名”、“密码”和登录按钮。
属性:
DestinationPageUrl 用户登录成功后转高的网页
FailureAction 登录失败进行的操作,Refresh和RedirectToLoginPage两种操作
RememberMeSet 设置“记住我”复选控。
CreateUserUrl 注册用户帐号的页面
HelpPageUrl 说明页面的URL
PasswordRecoveryUrl 密码恢复页面的URL
当你输入用户名和密码进行登录的时候,登录控件会自动去数据库中验证输入的用户名和密码。
自定义Authentication事件处理:
Login控件底层会使用Membership.Validate()和FormsAuthentication.RedirectFromLogin()方法进行验证,但有的时候我们己经有了现成的用户帐号和数据库的话,那如何做登录?
using System.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
public partial class 登陆 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_Authenticate1(object sender, AuthenticateEventArgs e)
{
MySqlConnection mysqlconn = Conn.createCon();
mysqlconn.Open();
string mysqlcommandstring =
"select count(*) from login where username = @u and password = @p";
MySqlCommand mysqlcommand = new MySqlCommand(mysqlcommandstring, mysqlconn);
MySqlParameter param;
param = new MySqlParameter("@u", Login1.UserName);
mysqlcommand.Parameters.Add(param);
param = new MySqlParameter("@p", Login1.Password);
mysqlcommand.Parameters.Add(param);
int n = Convert.ToInt32(mysqlcommand.ExecuteScalar().ToString());
mysqlconn.Close();
if (n > 0)
e.Authenticated = true;
else
e.Authenticated = false;
}
}