【问题标题】:How to get NET Core Authorization Working如何让 NET Core 授权工作
【发布时间】: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


【解决方案1】:

这最终成为嵌套组和 IIS Express 的问题。这在实时环境中不是问题,并且可以与未嵌套的组一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2019-10-30
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多