我是ASP.NET的新手,并被要求执行以下操作。我曾尝试查看本主题中的大量Stack溢出文章,但无法完全找到适合我的情况的答案。
情况如下:Web应用程序在公司内部。在应用程序内,根据AD组,许多页面应具有不同的访问级别。因此,例如对于一页,如果用户位于A,B,C或D的AD组中,则他们将具有访问权限。另一个页面可以提供对属于E,F或G任何广告组的用户的访问权限。
不知道我是否错误地阅读了其他Stack Overflow文章,但似乎他们回答了为特定组(单个组)的用户提供访问权限的问题。对于给定的网页,如果用户属于我指定允许访问的任何组的一部分,我想向用户提供访问权限。
此外,是否有一种简单的方法可以将我希望可以访问每个页面的AD组名称存储在文件中,并无需编写太多代码即可对此文件进行授权?这样,如果我需要更改允许访问特定页面的组,则只需更改文件中的组名列表即可。
答案 0 :(得分:0)
如果希望用户自动登录,则到目前为止,在IIS中托管是最简单的方法。设置说明如下:Configure Windows Authentication in ASP.NET Core
通过AD组锁定下来网站的某些部分是相当容易了。只需使用AuthorizeAttribute
上面的任一一个整体控制器,或者只是一个动作,并指定Roles
:
[Authorize(Roles = "DOMAIN\\GroupName")]
如果您希望组名是可配置的,则可以为每个组创建一个策略,该策略从appsettings.json
(或其他任何地方)读取组名,然后设置Policy
AuthorizeAttribute
而不是Roles
的属性。
有关如何设置的详细信息,请参见以下答案:https://stackoverflow.com/a/48148149/1202807