天天看点

Login控件

您都不晓得是咋回事的啊!!!

在使用 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 控件的功能还远不止这些,感兴趣的可以好好的去研究一下了。