首页 理论教育 ASP.NET应用程序开发相关知识与技术介绍

ASP.NET应用程序开发相关知识与技术介绍

时间:2023-10-21 理论教育 版权反馈
【摘要】:以上过程,读者可以在Web.config文件的<forms>配置节中设置该访问行为,表7-2给出了各参数的描述。而在实际情况下,可能更愿意在网站根目录下的Web.config文件中完成所有的Url授权,而不是把它们分在各自目录下的Web.config文件中。下面这个Web.config文件,放在应用程序根目录下,它启用窗体验证并设置了<forms>中的一些属性设置。

ASP.NET应用程序开发相关知识与技术介绍

1.Forms身份验证方式的配置

ASP.NET的身份验证方式可以根据不同的验证需求,在Web.config文件中添加<authentication>配置节,并设置mode属性,表7-1给出了各参数的描述。

978-7-111-43260-9-Chapter07-2.jpg

表7-1 mode参数描述

978-7-111-43260-9-Chapter07-3.jpg

如果使用Forms身份验证,这时根据用户在窗体上输入的票据,为他们提供相应的访问站点或者资源权限。如果用户输入的票据错误,则就会被重定向到特定的登录页面上,待用户输入正确的票据后,才能访问特定的站点或资源。以上过程,读者可以在Web.config文件的<forms>配置节中设置该访问行为,表7-2给出了各参数的描述。

978-7-111-43260-9-Chapter07-4.jpg

表7-2 forms属性参数描述

978-7-111-43260-9-Chapter07-5.jpg

2.对用户设定登录票据

对用户检查登录票据(通常是用户名和密码)有两种方法:

1)把票据存放在数据库中,这时可以写一个方法来检查数据库中该票据是否存在(如定义方法:bool IsLogin(string username,string password));

2)直接把票据放在Web.config中,该方法适用于用户数量较少的情况。

978-7-111-43260-9-Chapter07-6.jpg

这时可以使用FormsAuthentication对象的Authenticate()方法,系统便会自动将用户输入的票据与<credentials>项中的用户名和密码进行比较,如果与该项中的任何一个<user>元素匹配,则Authenticate()方法返回true,通过验证。

3.定义login.aspx登录页面(www.xing528.com)

假设页面中有一个输入用户名和密码的文本框txtName和txtPassword,以及一个登录按钮btnLogin,我们还按上面的两种检查登录票据的方法分别说明登录检验过程。

(1)用户资料保存于数据库时

978-7-111-43260-9-Chapter07-7.jpg

(2)用户资料保存于Web.config时

978-7-111-43260-9-Chapter07-8.jpg

4.定义退出登录功能

如果想要注销登录,那么可以使用System.Web.Security的FormsAuthentication类的SignOut()方法。它将保存用户信息的Cookie的值设置为一个空字符串,并将Cookie的到期日期设置为一个过去的日期,从而有效销毁验证Cookie。

978-7-111-43260-9-Chapter07-9.jpg

5.访问授权

假设网站的目录结构如图7-2所示。

978-7-111-43260-9-Chapter07-10.jpg

图7-2 网站目录结构

Forms的授权是基于目录的,如果想要限制登录Admin目录中页面的所有访问都必须采用票据,则通过以上步骤在Admin目录下的Web.config中配置相应的信息就可以了。而在实际情况下,可能更愿意在网站根目录下的Web.config文件中完成所有的Url授权,而不是把它们分在各自目录下的Web.config文件中。下面这个Web.config文件,放在应用程序根目录下,它启用窗体验证并设置了<forms>中的一些属性设置。假设要保护的文件夹名仍为Admin,则其中的所有页面都不能匿名访问。

978-7-111-43260-9-Chapter07-11.jpg

这里应该注意上面配置的层次结构,应该有两个<system.web>节。完成后,就可以把Admin文件夹下的那个Web.config删掉。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈