【问题标题】:Simple AD Application Security简单的 AD 应用程序安全
【发布时间】:2011-01-27 15:21:55
【问题描述】:

我有一个使用 Windows 身份验证 (Active Directory) 安全性的 .Net 4.0 应用程序。我决定编写自己的处理程序,通过查看页面名称并检查用户是否在定义为有权访问该特定页面的正确 AD 组中来检查用户是否有权访问当前页面。

此应用程序严格来说是一个仅在我们公司域中运行的 Intranet 应用程序。

我只是使用:“System.Web.HttpContext.Current.User.IsInRole”。

如果用户在组中,我会照常继续。如果用户不在组中,我会将用户重定向到“禁止访问”页面。

我的问题是...我正在执行此 (IsInRole) 检查每次页面加载时(在 PageLoad() 中,我的所有页面都会调用一个方法,每次页面加载时都会根据页面验证用户... )

您如何建议我在这方面更有效率? (我想我至少可以在调用验证代码之前进行“!PostBack”测试,对吧?)使用 Sessions 变量和/或 Cookie 怎么样?

非常感谢任何建议!

附: - 我过去曾使用过 Membership Provider,并考虑将其用于此应用程序,但我决定不这样做。我想要做的事情非常简单,我真的不想把我的数据库或代码与所有会员资格提供的东西混为一谈。

【问题讨论】:

    标签: .net asp.net .net-4.0


    【解决方案1】:

    一个想法是使用 web.config like here 的授权部分。

    另一种选择是从基类(Page 类型)派生所有页面,该基类在 Init 方法中执行 IsInRoleCheck,这样您就不会意外忘记,也不必在整个页面上重复代码.

    【讨论】:

    • 这就是我正在做的,已经。我从页面类型的基类派生我的所有页面。我在那个基本页面中执行“IsInRole”......我的帖子基本上是在询问这是否是一个好的解决方案。根据我在这里和 ASP.NET 上阅读的内容,似乎是这样。所以,我要和它一起去!
    【解决方案2】:

    您使用的是母版页吗?

    如果是这样,请在母版页的 Page_Load 中调用您的身份验证,它将级联到使用您的母版页的任何内容页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 2017-11-04
      • 1970-01-01
      • 2015-10-11
      • 2021-06-13
      • 1970-01-01
      相关资源
      最近更新 更多