当前位置:首页 > ASP.NET开发经验(4) — 一种简便地同时使用匿名与集成 Windows 验证的方法

ASP.NET开发经验(4) — 一种简便地同时使用匿名与集成 Windows 验证的方法

点击次数:973  更新日期:2010-12-27
\n

  相对来说,集成 Windows 验证是 ASP.NET 提供的一种安全性较高的验证方式,不用考虑被 Sniffer、不用去创建登录页面、不用去考虑登录失败次数限制、更重要的是,不用在应用程序中提供用户管理的功能,以及如何保护数据库中的用户名和密码。
\n

  经常会碰到这种应用场景:用户对一些普通功能可以匿名访问,对另外一些高级/管理功能,则需要登录后才能使用,很多人的做法就是将普通功能的页面放置在一个目录中,而高级/管理功能的页面则放在另外一个目录中,使用不同的 Web.Config 设置(<authorization> 的 <allow/> 或 <deny/>节)来控制,这样可能带来的一个问题就是:实现同样功能的页面可能要被复制两份,分别部署在这些目录中。


\n

  如果全部页面只在一个目录中,有什么办法可以同时实现匿名和授权用户的访问呢?即如何在需要验证用户的时候,弹出那个集成验证的对话框。


\n

  如果是基于 Forms 验证,则只需要手动调用(链接)一个 Login.aspx 就可以解决这个问题,但对于 Windows 集成验证来说,仔细查看了一下 WindowsAuthenticationModule 类,似乎没有找到可以编程控制来弹出 Windows 集成验证的那个对话框的方法。


\n

  还是采取了一个土办法。


\n

    \n
  • 原有页面目录中的 Web.Config 设置如下:

\n

\n

<authorization>
<allow users=”*” />
</authorization>


\n

    \n

  • \n
    新建一个子目录,Web.Config 设置如下:

    \n