【发布时间】:2023-04-09 00:01:01
【问题描述】:
我有一个授权策略连接并在 .NET 2.2 Razor Pages 应用程序中工作,然后它开始给我一个 403 No access 错误。我正在使用 Windows 身份验证和 Active Directory 组。我是 Active Directory 中管理员组的成员。我将 Authorize 标签添加到我的页面模型中,并且能够按预期访问。我将标签换成了我不属于的用户组,我不再可以访问,这是意料之中的。然后,我尝试同时授予用户和管理员访问权限,但无法使其正常工作。所以我恢复了,现在无法访问任何组。我在这里做错了什么。
这是我的 Startup.cs:
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy =>
{
policy.RequireAuthenticatedUser();
policy.RequireRole(@"DOMAIN\Admin");
});
services.AddAuthorization(options =>
{
options.AddPolicy("User", policy =>
{
policy.RequireAuthenticatedUser();
policy.RequireRole(@"DOMAIN\User");
});
这是我正在使用的授权标签:
[Authorize(Policy = "Admin")]
正如我所说,我是管理员组的一员。这在大约一个小时前有效,然后才开始提供 403。我从组中删除了我的 selft 并添加回来。我尝试将自己添加到用户组,然后换出授权标签。我之前遇到了一个名称中有空格的组的问题。我不确定那是问题所在,但我停止使用该组开始工作的第二个。我是否在与 AD 不同步到 Visual Studio 中的 IIS Express 或其他什么东西作斗争?
编辑:
我测试了下面的更改,这是我所属的另一组并且它有效。由于某种原因,它不承认某些群体。尽管它曾一度识别出 Admin 组,但现在却无法识别。 ''' policy.RequireRole(@"DOMAIN\Admin"); ''' 到 ''' policy.RequireRole(@"DOMAIN\APAdmin"); '''
【问题讨论】:
-
AD 信息不会同步到 IIS express 。请澄清哪种情况使应用程序突然返回 403 ?
-
我不确定,是什么原因造成的。但我测试了更改 policy.RequireRole(@"DOMAIN\Admin"); to policy.RequireRole(@"DOMAIN\APAdmin");这是我在 AD 中参与的另一个小组,它立即起作用。好像它并没有撤回我所属的所有团体。这就是为什么我想,也许这与缓存我的广告组有关。
标签: .net .net-core razor-pages