MCS_ASP.NET Logig控件学习

对于Login控件,不行先学控件本身,而是先看微软的ASP.NET 安全认证中,关于form认证的概念。

asp.net为我们提供了用户登录才能访问网页的功能,其中form认证是最常用的一种方法了。
form认证,只要web.config里设置

<authentication mode="Forms">

 


并设置好

<authorization><deny users="?"></deny></authorization>

 

这种规则,那么在你代码里只要写

if(this.Txt_UserName.Text=="Admin" && this.Txt_Password.Text=="123456")
{
  System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.Txt_UserName.Text,false);
}


就可以实现了,不过这样是没有认证的,需要你自己建立一个数据库或者其他的,然后判断了以后才执行这句话,并将用户名代入。

后来,发现每个人写认证的方法不同,增加学习和切换成本,微软又提供了一套框架,MembershipProvider,当然还有其他的几个框架(提供程序),这套框架是可以轻易扩展的,只是定义了一些接口,并且他自己实现了一种通过sql server数据库实现的例子,如果你使用了,那就会自动建 aspnet_Users这种表了,连接数据库的语句直接放在machine.config里了。

这种认证的话,代码可以这样写了
  

 if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
    FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else   
  Msg.Text = "Login failed. Please check your user name and password and try again.";    }


就是说可以用统一的Membership.ValidateUser来认证用户了,后台到底是数据库查询实现还是别的方法实现页面可以不关心了

由于认证的接口统一了,所有也就可以用控件来现实登录功能的封装了,所有才有了login等控件可以使用

 

FormsAuthentication是form认证的基础
Membership实现了认证的统一接口
Login控件封装了Membership的功能。

你点了登录按钮,Login控件调用Membership类的ValidateUser方法,ValidateUser方法调用微软自己用SQL Server实现的认证,通过后设置FormsAuthentication的Cookies为用户已经登录。

 

 

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe 

 该软件用于配置指定数据库生成数据表和存储过程

 

posted on 2014-06-26 15:23  ChingyZhang  阅读(207)  评论(0编辑  收藏  举报

导航