asp.net中的窗体身份验证(分目录验证篇)
在上一篇博文《asp.net中的窗体身份验证(最简单篇)》中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的。
比如一个新闻系统,通常只有在发布新闻的网页才需要身份验证,而用户浏览新闻是不需要身份验证的。对于这种情况,就要针对不同的网页来进行身份验证了。
要实现这种功能,也只要将《asp.net中的窗体身份验证(最简单篇)》稍作修改,具体操作方式如下所示:
第一步、创建一个子文件夹,将所有要验证的网页都放在这个文件夹中,设置该文件夹的名字为“admin”。
第二步、修改web.config文件。
1、在<system.web>和</system.web>中找到<authentication>节,将其改为“<authentication mode="Forms"><forms loginUrl="~/admin/AdminLogin.aspx"></forms></authentication>”,其中Forms代表使用表单认证;loginUrl用于指定登录页面URL,个人比较喜欢将登录页面也放在admin文件夹中,所以在此要指定登录页面URL,如果还是想使用根目录中的login.aspx页面作为登录页面,则可以省略<forms>节。
2、在<system.web>和</system.web>中添加“<authorization><allow users="?"/></authorization>”,其中“<allow users="?"/>”代表允许所有的匿名用户。注意此处与《asp.net中的窗体身份验证(最简单篇)》的区别,在《asp.net中的窗体身份验证(最简单篇)》中,此处使用的是“<deny users="?"/>”,用于拒绝所有匿名用户。
第三步、在需要身份验证的子文件夹中添加一个web.config文件,在本例中为在“admin”文件夹中添加该文件。
第四步、修改需要身份验证的子文件夹中的web.config文件,在本例中为“admin”文件夹中的web.config文件。
在<system.web>和</system.web>中,添加“<authorization><deny users="?"/></authorization>”,由于在根目录中的web.config文件中声明了允许所有匿名用户访问,所以在不能允许匿名用户访问的子文件夹中,必须要使用“<deny users="?"/>”来拒绝匿名用户访问。另外,在子文件夹中的web.config文件中可以没有<authentication>节。
第五步、在“admin”子文件夹中创建AdminLogin.aspx文件。如果在第二步中没有使用<forms>节来指定用户登录页面,则在网站根目录下创建login.aspx文件。
第六步、在AdminLogin.aspx文件(或login.aspx文件)中验证身份,如果身份验证通过,使用FormsAuthentication.SetAuthCookie()为用户创建一个身份验证的票据,并将其添加到Cookie中。以后,再访问网站中admin子目录下的其他网页,就不需要使用进行身份验证了。单击提交按钮后的代码与《asp.net中的窗体身份验证(最简单篇)》中的代码类似,在此就不再赘述了
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/smallfools/archive/2009/05/26/4217804.aspx
转载于:https://www.cnblogs.com/mcsm/articles/1799497.html
asp.net中的窗体身份验证(分目录验证篇)相关推荐
- asp.net中的窗体身份验证(最简单篇)
在创建网站中,常常会使用到身份验证.asp.net中内置了几种身份验证的方式,如Windows.Froms.Passport等.这几种身份验证的方式各有不同.一般来说,网站的身份验证方式都会经过以下几 ...
- asp.net中使用窗体身份验证
第一步:设置web.config <authentication mode="Forms"></authentication>,如果web.config ...
- asp.net中的窗体身份验证
入门 在创建网站中,常常会使用到身份验证.asp.net中内置了几种身份验证的方式,如Windows.Froms.Passport等.这几种身份 验证的方式各有不同.一般来说,网站的身份验证方式都会经 ...
- ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)
ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) 收藏 转自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介绍了在ASP ...
- ASP.NET中对表单输入行有选择验证
在ASP.NET中,有一系列的验证控件,可以很方便地验证用户输入的数据是否合法.尽管这些验证控件十分强大并且容易使用,但它们有一个缺点,那就是,一般在使用它们的时候,在提交网页时,都要对整个网页的用户 ...
- ASP.Net中自定义Http处理及应用之HttpModule篇
HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandle ...
- 手机号码验证--区号验证--电话号验证--分机号验证--手机号和固定电话二选一--用户名只能为汉字或者英文请--邮箱账号...
// 手机号码验证jQuery.validator.addMethod("isPhoneNumber", function(value, element) {var tel = / ...
- .NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新
C#所有runat="server"的控件都会造成整个界面的刷新,如果想实现局部刷新,可以利用ajax.需要加入的控件有ScriptManager和UpdatePanel,可以实现 ...
- ASP.Net中自定义Http处理及应用之HttpHandler篇
摘自:http://hi.baidu.com/irinihp/blog/item/c96a011ea1f78ff31ad576f8.html 很多时候,我们新建一个xxx.aspx页和xxx.aspx ...
最新文章
- 我们遇到困难怎么办?
- Java集合,ConcurrentHashMap底层实现和原理(常用于并发编程)
- nginx+tomcat的负载均衡
- ASP.NET AJAX深入浅出系列课程
- mysql optimize 作用_mysql optimize table
- [UML]UML系列——用例图Use Case
- golang mysql封装_使用Golang 封装一个Api 框架 ----- 数据库操作篇(gorm引入)
- px、pt、em、rem 的区别
- jmeter压力测试指标解释
- 赵小楼《天道》《遥远的救世主》深度解析(130)有道无术,术尚可求也;有术无道,止于术
- work文档,Excel表格常用快捷键
- aiohttp+aiofiles异步爬虫光速下载图片
- 【英语学习】【医学】20种氨基酸的中英文名称与词源
- ble HCI 数据格式
- 主流的企业级报表工具,国内报表工具排名前列
- Git 与 Github 基础一步入门
- 时序图神经网络总结(1)
- Visual Odometry Revisited: What Should Be Learnt?(2020.2)
- 吕文哲:为什么我说EOS完爆以太坊,理由全在这里了
- Caas社区作为一种服务