All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
ASP.NET开发经验(4):种简便地同时使用匿名与集成,Windows,验证的方法_[Asp.Net教程]

Writer: delv Article type: Programming skills(编程技巧) Time: 2014/1/23 3:11:59 Browse times: 318 Comment times: 0

ASP.NET开发经验(4):种简便地同时使用匿名与集成,Windows,验证的方法_[Asp.Net教程]


Head photo

Go homepage
Upload pictures
Write articles

ASP.NET开发经验(4) --- 一种简便地同时使用匿名与集成 Windows 验证的方法_[Asp.Net教程]   相对来说,集成 Windows 验证是 ASP.NET 提供的一种安全性较高的验证方式,不用考虑被 Sniffer、不用去创建登录页面、不用去考虑登录失败次数限制、更重要的是,不用在应用程序中提供用户管理的功能,以及如何保护数据库中的用户名和密码。

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

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

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

  还是采取了一个土办法。

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



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



  • 在子目录中创建一个简单的 Auth.aspx ,使其 Response.Redirect 到上级目录中的页面
  • 在原有页面中的适当位置,建立一个“Login”的链接,指向 Auth.aspx

  这样就可以在原有页面中通过 User.Identity.Name 是否为空来检测用户是否登录,当然也可以在 Auth.aspx 中通过检查用户的 User.Identity.Name ,来进行一些其它的处理,如取出用户的权限、记录日志等。

  估计还有更好的方法,探寻中 ... ...

来源:moslem的blog





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.