【问题标题】:Restricting access to AD roles in an ASP.NET application限制对 ASP.NET 应用程序中的 AD 角色的访问
【发布时间】:2011-08-24 15:17:52
【问题描述】:

我是 ASP.net 开发的新手,我想知道如何继续解决某个问题。我可以访问使用单个网页显示多个不同报告的现有网站(要显示的报告类型由查询字符串确定)。一组指向不同报告的链接显示在条目 default.aspx 页面上。此网站由域中的用户内部访问,其凭据存储在 Active Directory 用户存储中。

有人要求我升级此网站的安全性,以便根据其 AD 角色为不同的用户提供不同的报告列表。我知道安全修剪可以与站点地图提供程序一起使用,以限制不同用户或角色在 ASP 菜单控件中可以访问的内容。是否可以使用带有别名 URL 之类的安全修剪,其中别名是指带有查询字符串的报告页面?

实现此目的的任何其他直接方式(最好将角色映射到单个位置的报告)都可以。

感谢您的帮助。 诺曼

【问题讨论】:

  • 报告存储在哪里?在数据库中?如果是这样,在同一个数据库中集成角色可能最有意义。

标签: asp.net active-directory roles


【解决方案1】:

通常,您可以使用WindowsPrincipal.IsInRole 重载之一检查用户是否属于某个角色。您需要做的是将角色与某些可配置存储(例如,数据库、xml 文件等)中的报告相关联,然后使用此信息来确定特定报告是否适用于登录用户,然后控制报告链接的可见性。

【讨论】:

    【解决方案2】:

    1-首先,您需要在 web.config 文件中将身份验证模式更改为 Windows 身份验证。

    2-第二次使用工具箱登录部分中的 LoginView 控件

    3- 在您的 LoginView 控件中选择 Edit RoleGroups Link

    4- 开始添加与您的 AD 角色同名的角色

    5- 完成将角色添加到 loginView 后,您可以从 loginView 访问它们

    6- 选择 LoginView 的智能标记和视图列表指向特定角色

    7- 在第 6 步开始添加指向所选角色的登录视图的链接

    8- 对角色列表中的每个角色重复步骤 7

    ================================================ ===========

    注意:此解决方案适用于 windows 角色(即)角色的数量是恒定的,角色的变化最小

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 2015-07-17
      • 2016-01-29
      • 2016-07-18
      • 1970-01-01
      • 2019-12-18
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多