在上一篇博文《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中的窗体身份验证(分目录验证篇)相关推荐

  1. asp.net中的窗体身份验证(最简单篇)

    在创建网站中,常常会使用到身份验证.asp.net中内置了几种身份验证的方式,如Windows.Froms.Passport等.这几种身份验证的方式各有不同.一般来说,网站的身份验证方式都会经过以下几 ...

  2. asp.net中使用窗体身份验证

      第一步:设置web.config <authentication mode="Forms"></authentication>,如果web.config ...

  3. asp.net中的窗体身份验证

    入门 在创建网站中,常常会使用到身份验证.asp.net中内置了几种身份验证的方式,如Windows.Froms.Passport等.这几种身份 验证的方式各有不同.一般来说,网站的身份验证方式都会经 ...

  4. ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)

    ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) 收藏 转自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介绍了在ASP ...

  5. ASP.NET中对表单输入行有选择验证

    在ASP.NET中,有一系列的验证控件,可以很方便地验证用户输入的数据是否合法.尽管这些验证控件十分强大并且容易使用,但它们有一个缺点,那就是,一般在使用它们的时候,在提交网页时,都要对整个网页的用户 ...

  6. ASP.Net中自定义Http处理及应用之HttpModule篇

    HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandle ...

  7. 手机号码验证--区号验证--电话号验证--分机号验证--手机号和固定电话二选一--用户名只能为汉字或者英文请--邮箱账号...

    // 手机号码验证jQuery.validator.addMethod("isPhoneNumber", function(value, element) {var tel = / ...

  8. .NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新

    C#所有runat="server"的控件都会造成整个界面的刷新,如果想实现局部刷新,可以利用ajax.需要加入的控件有ScriptManager和UpdatePanel,可以实现 ...

  9. ASP.Net中自定义Http处理及应用之HttpHandler篇

    摘自:http://hi.baidu.com/irinihp/blog/item/c96a011ea1f78ff31ad576f8.html 很多时候,我们新建一个xxx.aspx页和xxx.aspx ...

最新文章

  1. 我们遇到困难怎么办?
  2. Java集合,ConcurrentHashMap底层实现和原理(常用于并发编程)
  3. nginx+tomcat的负载均衡
  4. ASP.NET AJAX深入浅出系列课程
  5. mysql optimize 作用_mysql optimize table
  6. [UML]UML系列——用例图Use Case
  7. golang mysql封装_使用Golang 封装一个Api 框架 ----- 数据库操作篇(gorm引入)
  8. px、pt、em、rem 的区别
  9. jmeter压力测试指标解释
  10. 赵小楼《天道》《遥远的救世主》深度解析(130)有道无术,术尚可求也;有术无道,止于术
  11. work文档,Excel表格常用快捷键
  12. aiohttp+aiofiles异步爬虫光速下载图片
  13. 【英语学习】【医学】20种氨基酸的中英文名称与词源
  14. ble HCI 数据格式
  15. 主流的企业级报表工具,国内报表工具排名前列
  16. Git 与 Github 基础一步入门
  17. 时序图神经网络总结(1)
  18. Visual Odometry Revisited: What Should Be Learnt?(2020.2)
  19. 吕文哲:为什么我说EOS完爆以太坊,理由全在这里了
  20. Caas社区作为一种服务

热门文章

  1. GNU/Linux与开源文化的那些人和事
  2. lucene两个分页操作
  3. 想了好久 请多多指教
  4. “人肉”背后隐藏的网络风险
  5. 50个Web设计师超便利的工具
  6. 发布一个博客园专用Windows Live Writer代码插件
  7. 取消IE不允许下载文件的提示
  8. 2021年江苏高考各科成绩查询,江苏2021年高考总分及各科分数
  9. 如何抓取html请求,请求获取网页的response,获取网页的html 怎么那么慢
  10. Mysql InnoDB Plugin安装 install