您都不晓得是咋回事的啊!!!
在使用 Login 控件时,还有一点需要声明的就是,
本身对用户的验证这些操作而言,
并不是由 Login 控件完成的,而是在其背后有 Membership 和 Role 支持,
Login 控件所做的可以这么说,只是一个 UI ,然后接受用户名,密码等参数,
然后将这些参数传递给 Membership 和 Role 这些类来做处理,
所以,正在起作用的是 Membership 和 Role , 而不是 Login 控件本身。
接下来就对 Login 控件的属性和事件做一个介绍吧,
属性的话,
DistinationPageUrl---------指定当用户登录成功后会跳转到的页面
FailureAction---------------指定当登录失败时,要发生的动作,
有 Refresh 和 RedirectToLoginPage 两个选项
还有诸多的属性是在属性窗口中直接看不到的,
您可以使用 MSDN 查看或者直接调用其代码定义窗口,
再看几个主要的事件吧
Authenticate--------自定义的验证,不适用默认的 Membership 和 Role 来实现验证,
而是自己编写 ADO.NET 代码实现验证
LoggingIn-----------用户按下登录按钮时的操作(此时还没有执行验证)
LoggedIn------------用户按下登录按钮后执行验证且通过后触发
LogginError----------在验证过程中出现错误时引发事件
再对上面的一些属性进行解释:
首先是 DistinationPageUrl ,如果这个属性没有设置的话,
那么使用 Login 成功登录后,
会自动跳转到在 web.config 中定义的 defaultUrl
而如果您已经定义了 DistinationPageUrl 的话,
那么在登录成功后,便会跳转到由这个 DistinationPageUrl 所定义的页面上,
而不会跳转到 web.config 中定义的 defaultUrl 指定的页面上了。
还有就是对于 Login 控件,您可以把它转换为模板,
这样的话,您便可以充分的自定义 Login 的用户界面了,
接下来就看一个使用了 Login 的 Demo 了
首先是我定义了三个页面
一个是 Login.aspx
一个是 Main.aspx
一个是 Demo__2.aspx
然后再看一下 web.config 中的一些配置吧,
从配置中可以看出,我设置了 loginUrl 属性,
这个属性的作用就是当用户没有通过验证时,
使用 FormsAuthentication.RedirectToLoginPage(); 将要跳转到的页面,
而后我又定义了 defaultUrl ,在上面也解释了这个属性的使用,也
就是当用户通过验证且没有设置 DestinationPageUrl 时将要跳转到的页面,
而后就是 path 属性了,path=”/” 代表使用本地 localhost ,
其实在这个 forms 标记中还有很多很重要的属性,不过大家根据命名也可以猜出个大概了,
然后呢,我就通过在 Login.aspx 中添加一个 Login 控件,并且将其转换为模板,
设置一下外观属性,
便可以得到下面的这个界面了
再看一下 Main.aspx 的 Code-Behind 和 Demo__2.aspx 的 Code-Behind,
(两个的 Code-Behind 是一样的)
接下来就看演示了,
首先,我先浏览 Demo__2.aspx 页面,可以发现其会自动跳转到 Login.aspx 页面上,
(这是因为在 web.config 中设置的 loginUrl 起了作用)
然后我便完成登录,登录成功后,其又会自动跳转到 Demo__2.aspx 页面上,
然后就是我直接使用 Login.aspx 页面了,我一开始就浏览 Login.aspx 页面,
登录成功后,其又会自动跳转到 Main.aspx 中,
(这是 DestinationPageUrl 属性起了作用)
以上只是简单的对 Login 控件有了一个简单的介绍,
不过对于其中的一些需要注意的地方,比如 web.config 中的设置,
还是要引起注意的,
其实, Login 控件的功能还远不止这些,感兴趣的可以好好的去研究一下了。