ASP.Net 2 入门(二)――用户登录和注销
2012-11-13 22:22
423 查看
实现自己的SimpleMembershipProvider类
这里仅仅为了实验用,所以仅简单的实现了ValidateUser(string, string) : bool方法,这个方法用来验证用户名和密码是否正确,并返回验证结果(True|False)。
创建一个新的Web项目
在Default.aspx上放一个LoginStatus控件(System.Web.UI.WebControls.LoginStatus),并命名为loginStatus。这个控件将根据当前账号登录的状态的不同而自动显示不同的状态,账号已登录后为"注销",账号登录前为"登录"。
在Default.aspx上放一个LoginName控件(System.Web.UI.WebControls.LoginName),并命名为loginName。这个控件将显示当前登录的账号名。
新建一个Web窗体:Login.aspx
在Login.aspx上放一个Login控件(System.Web.UI.WebControls.Login),并命名为login
在属性窗口中设置login控件的DestinationPageUrl设置为Default.aspx
配置Web.config文件
如果项目中没有web.config文件,那就添加一个
设置authentication字段
设置membership字段,使前面的SimpleMembershipProvider类实现其价值
完成
编译、查看网页,登录注销功能就搞定了
/// <summary> /// SimpleMembershipProvider 的摘要说明 /// </summary> public class SimpleMembershipProvider : MembershipProvider { public SimpleMembershipProvider() { // // TODO: 在此处添加构造函数逻辑 // } public override string ApplicationName { get { return ("SimpleMembershipProvider Application"); } set { } } public override bool ChangePassword(string username, string oldPassword, stringnewPassword) { return (true); //throw new Exception("The method or operation is not implemented."); } public override bool ChangePasswordQuestionAndAnswer(string username, string password,string newPasswordQuestion, string newPasswordAnswer) { return (true); //throw new Exception("The method or operation is not implemented."); } public override MembershipUser CreateUser(string username, string password, string email,string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey,out MembershipCreateStatus status) { status = MembershipCreateStatus.Success; return (null); //throw new Exception("The method or operation is not implemented."); } public override bool DeleteUser(string username, bool deleteAllRelatedData) { return (true); //throw new Exception("The method or operation is not implemented."); } public override bool EnablePasswordReset { get { return (true); } } public override bool EnablePasswordRetrieval { get { return (true); } } public override MembershipUserCollection FindUsersByEmail(string emailToMatch, intpageIndex, int pageSize, out int totalRecords) { totalRecords = 0; return (null); //throw new Exception("The method or operation is not implemented."); } public override MembershipUserCollection FindUsersByName(string usernameToMatch, intpageIndex, int pageSize, out int totalRecords) { totalRecords = 0; return (null); //throw new Exception("The method or operation is not implemented."); } public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out inttotalRecords) { totalRecords = 0; return (null); //throw new Exception("The method or operation is not implemented."); } public override int GetNumberOfUsersOnline() { return (1); //throw new Exception("The method or operation is not implemented."); } public override string GetPassword(string username, string answer) { return (string.Empty); //throw new Exception("The method or operation is not implemented."); } public override MembershipUser GetUser(string username, bool userIsOnline) { return (null); //throw new Exception("The method or operation is not implemented."); } public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) { return (null); //throw new Exception("The method or operation is not implemented."); } public override string GetUserNameByEmail(string email) { return (string.Empty); //throw new Exception("The method or operation is not implemented."); } public override int MaxInvalidPasswordAttempts { get { return (7); } } public override int MinRequiredNonAlphanumericCharacters { get { return (1); } } public override int MinRequiredPasswordLength { get { return (1); } } public override int PasswordAttemptWindow { get { return (1); } } public override MembershipPasswordFormat PasswordFormat { get { return (MembershipPasswordFormat.Clear); } } public override string PasswordStrengthRegularExpression { get { return (string.Empty); } } public override bool RequiresQuestionAndAnswer { get { return (true); } } public override bool RequiresUniqueEmail { get { return (true); } } public override string ResetPassword(string username, string answer) { return (string.Empty); //throw new Exception("The method or operation is not implemented."); } public override bool UnlockUser(string userName) { return (false); //throw new Exception("The method or operation is not implemented."); } public override void UpdateUser(MembershipUser user) { //throw new Exception("The method or operation is not implemented."); } public override bool ValidateUser(string username, string password) { if (username.ToLower() == "gavinlv") { if (password == "GavinLv") { return (true); } } return (false); } } |
创建一个新的Web项目
在Default.aspx上放一个LoginStatus控件(System.Web.UI.WebControls.LoginStatus),并命名为loginStatus。这个控件将根据当前账号登录的状态的不同而自动显示不同的状态,账号已登录后为"注销",账号登录前为"登录"。
在Default.aspx上放一个LoginName控件(System.Web.UI.WebControls.LoginName),并命名为loginName。这个控件将显示当前登录的账号名。
新建一个Web窗体:Login.aspx
在Login.aspx上放一个Login控件(System.Web.UI.WebControls.Login),并命名为login
在属性窗口中设置login控件的DestinationPageUrl设置为Default.aspx
配置Web.config文件
如果项目中没有web.config文件,那就添加一个
设置authentication字段
<authentication mode="Forms"> <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> </authentication> |
<membership defaultProvider="SimpleProvider" userIsOnlineTimeWindow="15"> <providers> <add name="SimpleProvider" type="SimpleMembershipProvider" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" writeExceptionsToEventLog="true" /> </providers> </membership> |
编译、查看网页,登录注销功能就搞定了
相关文章推荐
- ASP.Net 2 入门(一)――用户登录和注销 【转】
- ASP.Net 2 入门(一)――用户登录和注销
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(6) 控制器基类 主要做登录用户、权限认证、日志记录等工作
- 在ASP.NET AJAX中使用应用程序服务和本地化(2):示例程序:实现用户登录和注销
- Easyui + asp.net MVC 系列教程 第19-23 节 完成注销 登录限制过滤 添加用户
- 牛腩购物13: 整合用户资料修改 用户修改密码 asp.net登陆控件的使用(登录前 登陆后) 显示登录名 显示注销按钮
- asp.net入门---数据库连接和登录用户
- 在ASP.NET AJAX中使用应用程序服务和本地化:实现用户登录和注销(转自:Dflying Chen @ cnblogs)
- asp.net访问网络路径方法(模拟用户登录)
- ASP.NET防止用户多次登录的方法
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- asp.net用户注销或者关闭网页时清除用户Cookie
- ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
- ASP.NET防用户重复登录的方法
- asp.net mvc 实现判断用户是否登录的两种方式
- 牛腩购物12 :整合用户登录页 用到 asp.net 内置票据认证控件的使用(用户登录 用户权限) 用户控件ascx 设置/获取RadioButtonList 和RadioButton
- ASP.NET整合Discuz!NT3.5实例说明(含用户登录、评论等)
- ASP.NET防止用户多次登录的方法
- asp.net用户登录并发数控制
- 用户 'IIS APPPOOL\ASP.NET V4.0' 登录失败