【问题标题】:ASP.NET Active Directory authorization for each web page每个网页的 ASP.NET Active Directory 授权
【发布时间】:2019-02-01 16:33:26
【问题描述】:

我是 ASP.NET 的新手,并被要求执行以下操作。我已尝试查看该主题中的大量堆栈溢出文章,但无法找到针对我的情况的具体答案。

场景如下:Web 应用程序在公司内部。在应用程序中,有许多页面应该根据 AD 组具有不同的访问级别。因此,例如,对于一个页面,如果用户位于 AD 组 A、B、C 或 D 中的任何一个中,他们将具有访问权限。另一个页面可以为属于任何 AD 组 E、F 或 G 的用户提供访问权限。

不确定我是否错误地阅读了其他 Stack Overflow 文章,但似乎他们回答了为属于特定组(单个组)的用户提供访问权限的问题。对于给定的网页,如果用户属于我指定允许访问该页面的任何组的一部分,我想向用户提供访问权限。

此外,是否有一种简单的方法可以将我希望访问每个页面的 AD 组名称存储在一个文件中,并在不编写太多代码的情况下对该文件进行授权?这样,如果我需要更改允许访问特定页面的群组,我只需更改文件中的群组名称列表即可。

【问题讨论】:

  • 还有一件事我忘了提到,用户不应该进行任何登录。

标签: asp.net active-directory active-directory-group


【解决方案1】:

如果您希望用户自动登录,那么在 IIS 中托管是迄今为止最简单的方法。有关设置的说明在这里:Configure Windows Authentication in ASP.NET Core

广告组锁定网站的某些部分也很容易。您只需在整个控制器或只是一个动作上方使用AuthorizeAttribute,并指定Roles

[Authorize(Roles = "DOMAIN\\GroupName")]

如果您希望组名是可配置的,那么您可以为每个组创建一个从您的 appsettings.json(或其他任何地方,实际上)读取组名的策略,然后设置 @ 的 Policy 属性987654331@ 而不是 Roles

有关如何设置的详细信息在此答案中:https://stackoverflow.com/a/48148149/1202807

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多