ASP Core Azure Active Directory 登录使用角色

2024-02-25

我创建了一个 Azure Active Directory 应用程序,我想使用基于角色的安全性。我按照以下教程进行操作:https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/ https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/

登录正常,我将角色添加到应用程序清单中并分配了角色Approver到我自己的帐户。现在我想使用这些角色。

登录后,控制器中将进行以下操作:

[Authorize]

但是添加角色时,用户没有被授权:

[Authorize(Roles="Approver")]

另外,以下返回 false:

User.IsInRole("Approver");

似乎角色没有被检索,关于如何将角色功能添加到这个演示项目有什么建议吗?


使用 Azure AD For Groups 时,组成员身份信息不会神奇地出现在应用程序中,您需要使用图形API https://learn.microsoft.com/en-us/rest/api/graphrbac/Users/GetMemberGroups在身份验证后获取用户的组,或配置 Azure AD 以发回代表用户组成员身份的声明。

配置 Azure AD 以发送组声明:

通过转到 Azure 门户 => Azure Active Directory => 应用程序注册 => 所有应用程序 => 选择您的应用程序 => 单击顶部操作栏中的清单来更改应用程序清单

Change 团体会员声明到安全组,

完成后,您应该会收到来自 Azure AD 的组声明,我们可以通过迭代用户的声明属性快速看到这一点。

声明的值将是对象 ID,您需要知道一个或多个组的对象 ID。

有了 ID,您现在可以定义 ASP.NET Core 授权策略,如下所示:

        services.AddAuthorization(options => {
            options.AddPolicy("Approver",
                    policyBuilder => policyBuilder.RequireClaim("groups",
                    "c63b2f53-eff9-4d68-8b47-07f151270c74"));
        });

您已准备好检查此政策,如下所示:

   [Authorize("Approver")] OR
   [Authorize(Policy = "Approver")]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP Core Azure Active Directory 登录使用角色 的相关文章

  • VS 2013 中缺少“将 Application Insights Telemetry 添加到项目”选项

    我有一个现有的网络项目 我单击 将 Application Insights 遥测添加到项目 在该过程中的某个时刻它抛出了类似的错误 无法初始化powershell主机 然后我根据谷歌搜索尝试了一些东西 项目中没有ApplicationIn
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 如何避免在附加字符串连接器逻辑应用程序中添加重复字符串

    我有以下 json 数组输入 results tableName ABC id 11 tableName ZX id 11 tableName ABC id 11 In logic app i have used in For each I
  • 古老的“字幕”标签的替代品?

    marquee 标签的标准等效项是什么 我正在寻找 HTML C asp NET 或 ASPX jquery java 脚本的解决方案 marquee 标签未包含在标准中 因为它是 视觉 标签 而不是 语义 标签 因此 您想要的任何语言都没
  • Page_ClientValidate 未定义

    我正在使用 ASP NET 2 0 并使用 IE8 作为我的默认浏览器 但无论我尝试多少次 Page ClientValidate一直给我这个错误 它没有定义 我怎么解决这个问题 请帮忙 所以 我想你的页面中可能没有任何RequiredVa
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • Microsoft Graph AD 用户或人员 API 来搜索所有用户?

    我正在尝试在我的应用程序中构建功能 供 管理员 将用户从其 AD 组分配到某些组 这些组进一步分配给应用程序特定的角色 基本上是一个简单的管理组件 将具有 oid 的用户添加到组中很容易 我面临的问题是找到实际的用户 目前 我看到的唯一选择
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 家庭自动化图书馆[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 C 开发人员 希望将家庭自动化作为一种 爱好 我做了一些研究 但想知道是否有人知道支持 In
  • ASP.NET 开发人员真的需要关心线程安全吗?

    我认为自己了解线程的概念以及为什么某些代码是或不是 线程安全 的 但作为主要使用 ASP NET 的人 线程和线程安全是我很少考虑的事情 然而 我似乎在 Stack Overflow 上遇到了大量评论和答案 不一定适用于 ASP NET 大
  • 更改表分布(Azure 数据仓库)

    在急着下班的过程中 我在一个采用循环分配的新桌子上运行了一个大型插入 我知道这不太可能 但是有没有办法将表的分布从循环更改为哈希分布 很遗憾ALTER TABLE不支持更改 Azure SQL 数据仓库中表的分布 您可以做的下一个最好的事情
  • 优化视图状态

    是否有人对优化 ASP NET 应用程序的视图状态有任何想法或参考可以向我指出 我不想把它全部关闭 优化它的主要目标是提高性能 所以我不想运行一个昂贵的函数来递归地禁用某些控件的视图状态 因为该函数会减慢速度页面的加载时间会达不到目的 有任
  • asp.net core / kestrel中的线程管理

    我正在解决我们已迁移到 asp net core 2 0 的 asp net 应用程序的性能 可扩展性问题 我们的应用程序作为应用程序服务托管在 azure 上 并且在任何中等流量的情况下都很容易崩溃 让我困惑的一件事是如何处理多个并发请求
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P

随机推荐

  • 无法在 OS X 上的 Visual Studio Code 中运行命令

    所以我已经启动并运行了 Visual Studio Code 据我所知 我已经安装了所有先决条件 我能够创建一个 ASP NET 5 项目并通过在中键入 dnx web 来运行该网站我的终端 所有这些都有效 我遇到的问题来自 Visual
  • 在 JUnit 中删除文件和目录

    我正在为在目录中创建文件的方法编写测试 我的 JUnit 测试如下所示 Before public void setUp objectUnderTest new ClassUnderTest assign another directory
  • Chrome 打包应用程序具有 onblur 侦听器

    Chrome 打包应用程序是否有任何事件侦听器来判断应用程序是否失去焦点 我正在尝试制作一款游戏 但当我改变焦点时 我似乎无法使其暂停 我尝试了一些不同的方法 例如以下方法 但似乎都不起作用 document onblur pause do
  • 在本地计算机上有效但在服务器上无效的命令?

    我的桌面使用 ubuntu 10 04 服务器使用 Ubuntu 10 04 服务器版本 以下命令 sudo pip install e git http github com facebook python sdk git egg fac
  • 实现接口的数组的隐式类型

    我的印象是 C 编译器将根据它们都可以隐式转换为的类型隐式键入一个数组 编译器生成未找到隐式类型数组的最佳类型 public interface ISomething public interface ISomething2 public
  • 在线图上绘制误差阴影带 - python

    假设我有 25 行这样的代码 x np linspace 0 30 60 y np sin x 6 np pi error np random normal 0 1 0 02 size y shape y1 y np random norm
  • Unity3d 中的 Signalr 和 WebSocketSharp

    我目前已经构建了一个简单的信号中心 我正在将消息从 Unity5 项目推送到其中 鉴于 SignalR2 客户端不适用于 Unity5 我使用 websocketsharp 来拦截 websocket 帧 消息已成功推送到集线器 但是当我尝
  • 选择上一行mysql?

    如果我有一个 mysql 表 其中包含主 ID 和另一个名为 gameScore 的字段 我可以做一些类似的事情 SELECT gameScore FROM table1 WHERE id 100 ORDER BY gameScore AS
  • Oracle VIEW - 列中超过 4000 字节

    我正在使用 SQL 语句的这一部分从 N N 关系中获取信息 目标是获得一个包含如下列的视图 字符串 1 字符串 2 字符串 3 这工作正常 但有时我的列中有超过 4000 字节 SELECT RTRIM XMLAGG xmlelement
  • Linux 等待单个对象?

    这是一段显示问题的代码 main Process process NULL while process cout lt
  • 调整浏览器大小时可以避免浮动元素移动吗?

    我是编码和 CSS 领域的新手 并且注意到当我调整浏览器大小时 所有浮动元素都会移动到右侧 并且用户被迫水平滚动才能查看菜单 首先是否需要防止浮动元素不改变其位置 其次 如果我应该预防的话 有没有办法可以避免这种情况 浮动是一个痛苦的事情
  • 我可以在嵌入饼图的 R 条形图中制作这样的图表吗

    我有以下数据 I II Total A 15 25 40 B 5 45 50 C 15 5 20 R数据输入 group lt c A B C A B C subgroup lt c I I I II II II yvar lt c 15
  • 如何在 Windows 上创建 conda 环境快捷方式

    安装了 Anaconda 后 我得到了anaconda baseWindows 开始菜单上的快捷方式 打开我创建的 virtualenv 例如 myenv 我必须单击anaconda base并输入activate myenv在打开的cmd
  • 如何以编程方式打开“网络连接”窗口

    如何在Win7 XP中使用C 以编程方式打开 网络连接 窗口 使用 shell 执行启动一个新进程 然后运行 NCPA cpl 就像这样 ProcessStartInfo startInfo new ProcessStartInfo NCP
  • 查找 SAP 表 (gridview) 中某个范围的每个单元格值

    我正在尝试从 Excel 文件到 SAP 表中查找特定文本 我尝试了下面的代码 但它给了我错误 无效的下一个控制变量引用 到目前为止 下面是我的代码 set rLastRow rSheet Cells rSheet rows Count A
  • Lua中的“C like struct”用于长缓冲区操作?

    为了 Lua 的简单性和美观性 我想用 Lua 而不是 C 来编写 映射 代码 假设在 C 语言中我可以有以下内容 typedef struct my struct char field 1 10 char field 2 250 char
  • 旧版本 Python 中字典中键的顺序

    Code d a 0 b 1 c 2 l d keys print l 这打印 a c b 我不确定该方法如何keys 确定其中关键字的顺序l 但是 我希望能够以 正确 的顺序检索关键字 正确的顺序当然会创建列表 a b c Python
  • 如何判断 jsTree 是否已完全加载?

    我正在尝试编写一个在 jsTree 上打开特定节点的函数 但遇到一个问题 即在从 ajax 调用加载我的基础树之前执行该函数 我如何判断我的 jstree 数据是否已加载并等待加载完成 以下是我尝试使用的功能 function openNo
  • Obj-C、Storekit RestoreCompletedTransactions 返回零事务?

    我在恢复已完成的交易时遇到一些问题 SKPaymentQueue defaultQueue restoreCompletedTransactions 我添加了几个示例中提到的观察者 我尝试添加paymentQueueRestoreCompl
  • ASP Core Azure Active Directory 登录使用角色

    我创建了一个 Azure Active Directory 应用程序 我想使用基于角色的安全性 我按照以下教程进行操作 https azure microsoft com en us resources samples active dir