【问题标题】:Windows authentication with active directory groups MVC使用 Active Directory 组 MVC 进行 Windows 身份验证
【发布时间】:2018-07-12 09:28:40
【问题描述】:

我为仅在内部使用的 Web 应用程序实施 Windows 身份验证。这样用户不需要登录应用程序,而是在登录 Windows 时已经过身份验证。

我需要根据用户所属的组以及该组对 Active Directory 的权限授予用户对应用程序不同部分的访问权限。

我可以通过以下方式在不同的视图上做到这一点:

[Authorize(Roles = @"Domain\Group")]

如何在同一个视图上做同样的事情-根据用户在 Active Directory 中的组权限授予对视图不同部分的访问权限。

<div class="row">
    <div class="col-md-4">
        <h2>User Name: @User.Identity.Name</h2>
        <p>
         Test site with Active Directory
            Only users that belong to Group 1 should see this section
        </p>
        <p></p>
    </div>
    <div class="col-md-4">
        <label>Only users that belong to Group 2 should see this section</label>
    </div>
    <div class="col-md-4">
        <label>Only users that belong to Group 3 should see this section</label>
    </div>

【问题讨论】:

  • “视图的不同部分”是什么意思?视图在 浏览器 上运行。如果您不希望某些部分最终出现在浏览器中,请确保首先不发送到那里。这可以通过很多的方式来完成。一种方法是在视图中进行条件渲染(即 if 语句),或者对需要授权的部分使用部分视图并仅显示那些有权限的部分。也许在每个局部视图的顶部打勾?
  • 如果您绑定到远程甚至本地数据,请在视图中使用之前对数据进行过滤
  • 你想做什么?这个 HTML 代码应该显示什么?您是否尝试向特定用户显示特定列?显示过滤的菜单元素?这太宽泛了,无法在不写整篇文章的情况下按原样回答

标签: asp.net-mvc windows-authentication


【解决方案1】:

您可以在视图中使用 C#/Razor 条件语句根据用户所属的组来改变内容,如下所示:

<div class="row">

  <div class="col-md-4">
    <h2>User Name: @User.Identity.Name</h2>
    <p>
      Test site with Active Directory
      @if (User.IsInRole("Group1")) {
        Only users that belong to Group 1 should see this section
      }
    </p>
    <p></p>
  </div>
  @if (User.IsInRole("Group2")) {
    <div class="col-md-4">
      <label>Only users that belong to Group 2 should see this section</label>
    </div>
  }

  @if (User.IsInRole("Group3")) {
    <div class="col-md-4">
      <label>Only users that belong to Group 3 should see this section</label>
    </div>
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多