天天看点

ASP.NET的安全模式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>元素的属性

ASP.NET的安全模式ASP.NET的安全模式

        forms验证事例:

ASP.NET的安全模式ASP.NET的安全模式

        其实我们还可以将用户名和密码保存在Web.config文件中,用来检查用户名和密码是否授权用户。Web.config文件的<forms>子元素还可以有子元素。子元素<credentials>允许直接在Web.config中指定用户名和密码组合。

ASP.NET的安全模式ASP.NET的安全模式
ASP.NET的安全模式ASP.NET的安全模式

        <credentials>元素在配置文件中添加了用户及其密码。<credentials>有一个属性passwordFormat,其值可以是Clear、MD5和SHAI。

        Clear:密码存储为明文。用户的密码直接与这个值比较,不需要进一步转换。

        MD5:密码使用散列摘要进行存储。在验证证书时,用户密码使用MD5算法进行散列,在与这个值进行相等比较。不会存储或比较明文密码。这个算法比SHAI的性能好。

        SHAI:密码使用SHAI散列摘要来存储。在验证证书时,用户密码使用SHAI算法进行散列,再与这个值进行相等比较。不会存储或比较明文密码。这个算法的全能性最高。

        <authorization>配置节用来对用户进行授权,在实现用户授权过程中,应该遵循以下两个应用规则:

            1.位于较低目录级别的配置文件中包含的规则,优先于位于较高目录级别的规则。

            2.对于给定URL的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止

         <authorization>配置

            deny阻止访问用户;allow允许访问用户

            ?代表匿名用户,*代表任意用户

            多个用户之间用“,”隔开   

          使用<location>配置节,可以指定特定的文件或目录具有特别的访问权限。  

继续阅读