ASP.NET的安全模式
ASP.NET的安全模式
简介:根据所请求资源的类型,IIS能够自己处理请求,也可以不自己处理请求,如果资源请求一个ASP页面,则IIS将请求经过身份验证用户(或匿名用户)的安全令牌一起传递给ASP.NET,接下来发生的事情就取决于ASP.NET的配置。
ASP.NET支持的4种授权方法:
Windows:IIS验证。在内联网环境中非常有用。
Passport:微软集中式身份验证,一次登录便可访问所有成员站点,需要收费。
Form:窗体验证,验证帐号/密码,Web编程最佳流行的验证方式。
None:表示ASP.NET自己根本不执行身份验证,完全依赖IIS身份验证。
一、认证和授权机制
认证是确认用户身份的过程,在用户通过了身份验证后,开发人员就可以确定该用户是否有权继续操作。如果没有进行身份验证,就不能进行实体授权。
授权是确定已验证的用户是否有权访问应用程序中的某个部分、某个点或只访问应用程序提供的特定数据集。
二、基于窗体的身份授权模式
允许用户访问整个应用程序或其他特定资源的一种流行的模式。
IIS接受请求,但不进行处理,而传递给ASP.NET应用程序。
ASP.NET身份验证模式设置为Forms,下面图列出<forms>元素的属性
forms验证事例:
其实我们还可以将用户名和密码保存在Web.config文件中,用来检查用户名和密码是否授权用户。Web.config文件的<forms>子元素还可以有子元素。子元素<credentials>允许直接在Web.config中指定用户名和密码组合。
<credentials>元素在配置文件中添加了用户及其密码。<credentials>有一个属性passwordFormat,其值可以是Clear、MD5和SHAI。
Clear:密码存储为明文。用户的密码直接与这个值比较,不需要进一步转换。
MD5:密码使用散列摘要进行存储。在验证证书时,用户密码使用MD5算法进行散列,在与这个值进行相等比较。不会存储或比较明文密码。这个算法比SHAI的性能好。
SHAI:密码使用SHAI散列摘要来存储。在验证证书时,用户密码使用SHAI算法进行散列,再与这个值进行相等比较。不会存储或比较明文密码。这个算法的全能性最高。
<authorization>配置节用来对用户进行授权,在实现用户授权过程中,应该遵循以下两个应用规则:
1.位于较低目录级别的配置文件中包含的规则,优先于位于较高目录级别的规则。
2.对于给定URL的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止
<authorization>配置
deny阻止访问用户;allow允许访问用户
?代表匿名用户,*代表任意用户
多个用户之间用“,”隔开
使用<location>配置节,可以指定特定的文件或目录具有特别的访问权限。