- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Microsoft.Identity.Web NuGet 包,以便使用 Azure AD 将用户登录到 Net Core 3.1 WebApp,然后一旦用户登录,我就使用他们的 token 和范围来调用 MS Graph API从他们的个人资料中获取一些额外的数据,例如他们的名字、姓氏、用户名等。基本上,关于用户的一些额外信息不会自动包含在从 Azure AD 返回的 token 中。
这部分工作正常。
我想要实现的是配置某种形式的系统事件或触发器来告诉我用户何时成功登录,然后我将使用此触发器运行图形 API 查询并获取用户的其他配置文件属性。我想要这样做的原因是每次用户请求新页面并运行方法或操作时,我都可以将他们的附加属性包含到日志记录中。
因为 Microsoft.Identity.Web 包将帐户 Controller 隐藏在 NuGet 包中的某处(假设是一个 dll 或其他东西)我似乎无法访问它以查看我可以通过事件的方式锁定什么我可以用于上述操作的触发器。
除非我在用户登录后调用 MS Graph,否则我将无法访问我想包含在 Serilog 日志记录结构中的某些用户配置文件属性。
一旦我从 MS Graph 获得了所需的用户属性,那么我认为最好的解决方案是在登录 session 的生命周期内将它们作为 getters setters 存储在内存中,这样我就可以从任何页面模型访问它们/通过 DI 或模型在应用程序中使用 Controller 。
我曾想过在成功登录后加载主页索引页面时,只是简单地从 OnGet() 方法调用 MS Graph,但挑战是用户可能不一定先访问主页才能登录,他们可能已将书签保存到他们想立即转到的另一个页面,这意味着主页中的 OnGet() 方法可能永远不会运行。我需要一个更可靠的解决方案,因为我应该确保每次都正确地获取这些额外的用户配置文件属性,而不管首先访问哪个页面提示用户登录过程。
注意:我观察到这样一个事实,如果我直接进入一个启用了授权的页面,一旦登录,OIDC 就会返回到同一页面。
这个谜题的最后一步是在用户注销后从内存中删除保存的用户配置文件属性,但这应该很容易,因为注销 session 总是让我返回到 https://localhost:5001/MicrosoftIdentity/帐户/退出
如果有人对我可以使用此库实现上述目标有任何想法,那就太好了,谢谢
最佳答案
我在 Microsoft Identity Web 中找到了自定义代码的内容:
AddSignIn has another override, which takes delegates instead of aconfiguration section. The override with a configuration sectionactually calls the override with delegates. In advanced scenarios youmight want to add configuration by code, or if you want to subscribeto OpenIdConnect events. For instance if you want to provide a customprocessing when the token is validated.
https://github.com/AzureAD/microsoft-identity-web/wiki/web-apps#using-delegate-events
以下是 ASP.net 核心的 Microsoft 代码示例,适用于许多情况:
https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/
关于azure-active-directory - Microsoft Identity Web - 如何获取用户登录事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62821850/
我对 Android 很陌生,如果问题重复,请避免并发送链接。有三个 Activity A、B 和 C。 Activity A 获取一个用户名,我想在 Activity C 中显示该用户名,但我想先运
我正在尝试制作记事本应用程序,因此每次打开新笔记时,布局都会相同。另外, Activity 的数量(新注释)不应定义得尽可能多 最佳答案 如果 Activity 始终相同,您可能应该创建一个适配器,允
我有 3 个 Activity 。 主窗口 5 个按钮 在按钮的主窗口中按下此窗口打开(将其称为父窗口) 在父窗口按钮上按下此窗口打开调用它作为结束子窗口。 现在从子窗口我从父窗口获取值如下:
我遇到了一个 Activity backstack 问题。假设我的后台有 5 个 Activity :比如 Activity A、 Activity B、 Activity C、 Activity D
我正在寻找必须具有以下附加特征的 JMS 提供程序: 采用多代理,所有代理都必须处于事件状态(无单点故障) 仅在两台机器上进行扩展就足以满足我们的需求 能够保证订购(如果 1 个生产者 + 1 个消费
假设,我有一个由 TabHost 组成的选项卡 Activity 。 TabHost 包含 2 个选项卡,每两个选项卡都有一个 Activity 组。每个 Activity 组包含一项 Activit
我正在开发一个应用程序,我需要根据某些操作导航到特定 Activity 。这是一张图片 我的第一个 Activity 是 ReadingActivity。基于某些操作,用户将被带到 NewProjec
我创建了一个与服务器异步通信的应用程序。当应用程序发出服务器请求时,将创建一个带有“正在加载”通知的新对话框( Activity )。主要 Activity 实现了处理服务器响应的方法,我想在主要 A
我想在我的所有应用程序 Activity 中显示相同的选项菜单。我创建了一个实现菜单的通用 Activity ,并且我所有的进一步 Activity 都扩展了它。 问题:当我需要扩展其他特定 Acti
我有四个 Activity ,即 java 文件 - Activity1.java、activity2.java、activity3.java、activity4.java 和 xml 文件 - Ac
我有两个 Activity 。我想将数据从第二个 Activity 发送到上一个 Activity 。第一个 Activity 有自定义 ListView 和 bean 类。当我点击第二个 Activ
根 Activity 是堆栈中当前的第一个 Activity 还是 list 中指定为启动 Activity 的 Activity ? 支持应用程序 P 在启动时启动 Activity A。然后 A
你好 我想知道您在绘制 Activity 图选择“Activity ”时考虑了哪些关键点? 您如何从要建模的问题中选择 Activity ? 谢谢 最佳答案 Activity 图用于对正在开发的系统和
如何从主 Activity 启动 Activity 并在子 Activity 返回主 Activity 中退出操作后返回主 Activity ? 我已将子 Activity 作为启动器 Intent
我的工作流程如下: 登录 Activity -> ActivityB -> ActivityC -> ActivityD 我想将数据从LoginActivity传递到ActivityD,但不直接传递到
我之前曾尝试获得此问题的答案,但找不到可以解决我的问题的答案。我正在制作保存圆盘高尔夫球分数的应用程序。我的 MainActivity 有 4 个按钮。新比赛、恢复比赛、类(class)和球员。 At
我有一个 tts 非 UI 类和 Activity 类。现在在 Activity 类中,我有一个按钮,用户可以从中选择男声或女声,具体取决于我想要将字符串传递给 tts 类的选择,然后一次tts 类根
问题有点复杂,首先, Activity A 和 Activity B 的 list 中都有 android:noHistory = true 。我有一个自定义 serialized 类,假设 MyCl
在我的应用程序中,我有两个 Activity (AuthenticationActivity 和 MainActivity),每个 Activity 都有一个导航图和大量 fragment 。我创建了
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How can i use compose email activity in tabView? 我想在选项
我是一名优秀的程序员,十分优秀!