ASP.NET提供了3种认证方式:
windows身份验证:IIS根据应用程序的设置执行身份验证。要使用这种验证方式,在IIS中必须禁用匿名访问。
Forms验证          :用Cookie来保存用户凭证,并将未经身份验证的用户重定向到自定义的登录页。
Passport验证      :通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务。

关于这三种验证方式的配置,推荐一篇博文:http://www.cnblogs.com/chenqingwei/archive/2010/07/12/1775472.html

 

一. 配置windows身份验证

    1)配置IIS设置
       ASP.NET 身份验证机制
    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="60"></forms>
      </authentication>
      <authorization>
        <deny users="?"/>
      </authorization>
View Code

相关文章:

  • 2022-12-23
  • 2021-11-08
  • 2022-02-08
  • 2021-12-20
  • 2022-01-30
猜你喜欢
  • 2022-01-15
  • 2021-10-07
  • 2022-12-23
  • 2021-11-25
  • 2021-08-19
  • 2021-11-19
相关资源
相似解决方案