ASP.NET 身份验证机制
ASP.NET提供了3种认证方式:
windows身份验证:IIS根据应用程序的设置执行身份验证。要使用这种验证方式,在IIS中必须禁用匿名访问。
Forms验证 :用Cookie来保存用户凭证,并将未经身份验证的用户重定向到自定义的登录页。
Passport验证 :通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务。
关于这三种验证方式的配置,推荐一篇博文:http://www.cnblogs.com/chenqingwei/archive/2010/07/12/1775472.html
一. 配置windows身份验证
1)配置IIS设置
2)设置Web.config
<system.web>
<authentication mode = "Windows">
<!--通知操作系统将当前登录的用户的信任书传递给浏览器-->
<authorization>
<!--禁止匿名用户访问-->
<deny users = "?"/>
</authorization>
</system.web>
二.配置Forms身份认证
对于ASP.NET提供的验证机制,要深度的理解后才能灵活的运用。对于整个项目的访问权限,有时候我们需要对部分页面的访问权限进行限制,又不影响其他公共页面的访问。
案例:有一个ASP.NET的项目,对整个项目访问限制,不允许匿名用户访问,登录页面除外。
问题是,登录页面(假设是:Manager目录下的Login.aspx文件)中应用了Script的一个文件(假设这个文件 是:Script/jquery-1.7.1.min.js),同时,登录页面用到了Code目录下面的ValidateCode.ashx文件来生成验 证码的图片。要求整个网站只有当用户登录之后才能访问。
思路:首先,我们限制整个根目录站点不允许匿名用户访问,否则将跳转到登录页面。其次,登录页面用到了jQuery开发的js特效,引用了 Script文件夹下面的jquery-1.7.1.min.js文件,我们让匿名用能访问这个文件。最后,登录页面用到了Code目录下的 ValidateCode.ashx文件来生成验证码图片,所以能让匿名用户访问这个文件。
1.web.config配置文件
a.配置程序不允许匿名用户访问网站,否则跳转到登录页面。path='/'表示根目录即限制整个站点不允许匿名用户,也可以只限制某一个文件夹下 面的页面不允许匿用户访问。<deny users="?"> 限制匿名用户,"?"表示匿名用户,“*”表示所有用户。
<authentication mode="Forms">
<forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout=""></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
b.当用户打开程序时,会自动转到Manager/login.aspx页面,但是这个页面引用的jquery-1.7.1.min.js文件是不可用 的。因为,限制了所有的匿名用户只能访问Login.aspx页面,只有当注册票据之后其它的页面或文件才能正常访问。所以当匿名用户需要有权限访问 jquery-1.7.1.min.js文件,就需要设置某个文件或者文件的访问权限为所有用户。
<!--允许所有用户访问Script文件夹-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
c.所以,根据上面可知,验证码图片是不能显示的。我们把生成验证码文件,配置为允许匿名用户访问,如下代码:
<!--允许所有用户访问Code/ValidateCode.ashx文件,这个是用来生成验证码图片-->
<location path="Code/ValidateCode.ashx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
说明:这里的思路是先禁止所有的匿名用户访问整个站点,然后在释放某个文件夹或文件允许匿名用户访问,从而达到我们的需求。
所以,我们也可以用不同的思路来进行限制,比如:整个站点配置为允许任何人访问,在配置具体的文件夹和文件不允许匿名用户方面,从而达到我们的需求。其他的场景大同小异,总之,怎样简单便怎么使用!
三.配置Passport身份认证
需要安装Passport Software Developer Kit.这种认证方式适合于跨站之间的应用,用户只有一个用户名和密码可以访问任何成员站。
ASP.NET 身份验证机制的更多相关文章
- 定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证
背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.N ...
- 【ASP.NET】编程点滴 :ASP.NET身份验证
ASP.NET实际开发中身份验证 是一个不可回避的问题.在相当一段长的时间内,由于不求甚解,我对这个话题似懂非懂.今天就对它做个简单的小结. Authentication and Authorizat ...
- ASP.NET没有魔法——ASP.NET 身份验证与Identity
前面的文章中为My Blog加入了文章的管理功能(ASP.NET没有魔法——ASP.NET MVC使用Area开发一个管理模块),但是管理功能应该只能由“作者”来访问,那么要如何控制用户的访问权限?也 ...
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总 一份常见的 HTTPS 站点使用的证书和数据加密技术列表,便于需要时比较参考,将持续加入新的 HTTP 站点,这里给出的信 ...
- ASP.NET-internat身份验证
ASP.NET-internat身份验证默认在webconfig中配置的代码是这样的 <system.web> <compilation debug="true" ...
- asp.net 身份验证(Update)
ASP.NET 有四种 身份验证, 用的最广的就是 Froms 这几天 做项目 想用到 配置文件, 比较了 MVC 和ASP.NET 发现 还是 MVC 给力(MVC 叫做 过滤器 ...
- Asp.Net_Web身份验证
百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很 ...
- ASP.NET身份验证
Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验 证用的最多,也最灵活. Forms 验证方式对基于用户的验证 ...
- Asp.net 身份验证方式?
[Forms 身份验证] 通过其可将没有通过身份验证的请求重定向到使用 HTTP 客户端重定向的 HTML 窗体的系统.用户提供凭据并提交该窗体.如果应用程序验证该请求,系统就会发出包含凭据或密钥的 ...
随机推荐
- MySQL的用户密码过期功能
Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包.ATM和POS卡及相关的业务. PCI DSS,即PCI数据安全标准(Payment Card ...
- 常用docker镜像
oracle12c: mkdir -p /path/to/oradata docker run --name oracle12c \ -p 1521:1521 -p 5500:5500 \ -v /p ...
- ODBC数据源管理器-》系统DSN-》没有....Microsoft Access Driver(*mdb,*,accdb)
问题如标题: 解决方法:打开目录:“C:\Windows\SysWOW64”,双击该目录下的“odbcad32.exe”文件,就进去ODBC数据源管理界面了,现在这个界面中就有access的驱动了!
- css一般性
1. 总差那么几像素!line-height:100%;2. 数据图片,产品图片用img 小图标,logo,修饰网站的图片 用背景3.文字居中 line-height /text-align:cent ...
- jQuery实现点击控制左右两边元素挤压显示效果
该功能实现的是:分左.右两边布局,左边div默认展开,左边div中有一个元素,点击实现左边div隐藏,右边div挤压过来:再点击实现左边显示,右边挤过去. 一.HTML代码: <div clas ...
- 由echarts想到的js中的时间类型
在工作中使用echarts时,偶然发现折线图中对时间类型变量的用法: now前面的+号何解? now = new Date(+now + oneDay); 后来查阅资料,看到一篇博客,解释如下:这是对 ...
- suricata 关键字补充说明
基本关键字 1.msg(对匹配到的规则的说明,第一部分约定用大写字母表示,msg始终是签名的第一个关键字) 注意:msg中必须转义以下字符: ; \ " msg :“ATTACK-RESPO ...
- Redis、MongoDB及Memcached的区别
Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).l ...
- zip和zipPartitions
zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常. scala> val aa=sc.makeRDD( ...
- 天天向上的力量 III(python在pycharm实现)
'''描述一年365天,以第1天的能力值为基数,记为1.0.当好好学习时,能力值相比前一天提高N‰:当没有学习时,能力值相比前一天下降N‰.每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范 ...