首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure AD认证及其与用户的关系

Azure AD认证及其与用户的关系
EN

Stack Overflow用户
提问于 2022-10-13 04:13:28
回答 1查看 34关注 0票数 0

我有一个非常简单的网络核心应用程序,只有可用的身份验证方法是Azure。我没有任何本地帐户,我不想要除Azure AD以外的任何其他身份验证机制。

但是我想知道什么时候和谁创建/修改了任何记录。所以我需要我所有的表和我的用户之间的关系。但是我不能这样做,因为在使用Azure身份验证时,我没有任何保存用户信息的表。

为此,我扩展了IdentityUser,以查看当用户通过Azure进行身份验证时,它是否正在(至少)填充AspNetUserLogins表中的任何数据,但它当然不会这样做。

解决这个问题的最好方法是什么?

我是否应该创建一个包含用户姓名、电子邮件地址、objectId信息的表,在每次用户登录时检查从Azure到name和email address的任何更改?然后使用另一个元表在表之间创建关系?

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 01:24:41

对于Azure身份验证,它将允许您使用microsoft (xx@yy.onmicrosoft.com)在应用程序中签名,因此不需要在应用程序中设置用户管理模块。因此,它将为您提供读取用户信息的功能。

在您的需求中,您需要查看何时/谁修改任何记录。根据我的理解,您应该有一个可能包含以下列的表:id(primary key), operation_type, operation_target, timestamp, user_id...,这样您就可以知道谁在某些页面上做了一些操作。在插入行之前,必须获取用户信息。在用户登录应用程序后,您可以在Contorller中使用var user = HttpContext.User.Identity;获取用户信息。

如果您需要显示包含用户详细信息的操作细节。当数据库中有一个用户表时,可以单独使用user表查询记录表,但是当您使用AAD时,就没有用户表了。因此,当您需要查询用户详细信息时,应该使用Ms图形api来查询用户信息。就像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
                .AddMicrosoftIdentityWebApp(Configuration)
                .EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
                .AddMicrosoftGraph(Configuration.GetSection("DownstreamApi"))
                .AddInMemoryTokenCaches();

private readonly GraphServiceClient _graphServiceClient;

public HomeController(GraphServiceClient graphServiceClient)
{
    _graphServiceClient = graphServiceClient;
}

currentUser = await _graphServiceClient.Me.Request().GetAsync();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74055593

复制
相关文章
python Tkinter按钮带参数
from Tkinter import * def cross(value):     text.insert(INSERT,'x') window =Tk() frame =Frame(window) frame.pack() text =Text(frame,height =3,width =10) text.pack() button=Button(frame,text="add",command = lambda:cross(text)) button.pack() window.mainl
py3study
2020/01/09
1.6K0
java:如何让程序按要求自行重启?
正文开始前的废话: 这里的程序即包括b/s的web application,也包括standalone的类c/s的java application。 为什么要自我重启? 场景1:分布式环境中,一般会有很多应用(即包括c/s的java application,又有b/s的web application)部署在不同的环境中,为了管理方便,通常会把一些公用的配置,比如:报警发邮件用的邮箱账号/密码/smtp信息,公用的ftp账号信息,甚至jdbc的连接串信息等,统一放在某个位置(共享的网络存储目录、redis缓存
菩提树下的杨过
2018/01/18
2.8K0
java:如何让程序按要求自行重启?
正文开始前的废话: 这里的程序即包括b/s的web application,也包括standalone的类c/s的java application。 为什么要自我重启? 场景1:分布式环境中,一般会有很多应用(即包括c/s的java application,又有b/s的web application)部署在不同的环境中,为了管理方便,通常会把一些公用的配置,比如:报警发邮件用的邮箱账号/密码/smtp信息,公用的ftp账号信息,甚至jdbc的连接串信息等,统一放在某个位置(共享的网络存储目录、redis缓存
菩提树下的杨过
2018/01/18
1.4K0
python开发_tkinter_单选按钮
E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten
Hongten
2018/09/13
1.5K0
python开发_tkinter_单选按钮
Python+tkinter动态创建与销毁组件小案例
本文代码演示了如何在tkinter窗体上动态创建组件以及销毁组件的方法。 import tkinter import tkinter.messagebox import tkinter.simpledialog btnList = [] # 动态创建组件,并计算组件在窗体上的位置 def place(n): for i in range(n): exec('btn'+str(i)+'=tkinter.Button(root,text='+str(i)+')') eval('btn'+str(i)).p
Python小屋屋主
2018/04/16
5.2K0
Python+tkinter动态创建与销毁组件小案例
对抗蠕虫 —— 如何让按钮不被 JS 自动点击
作者: EtherDream www.cnblogs.com/index-html/p/anti_xss_worm.html 前言 XSS 自动点按钮有什么危害? 在社交网络里,很多操作都是通过点击按钮发起的,例如发表留言。假如留言系统有 XSS,用户中招后除了基本攻击外,还能进行传播 —— XSS 自动填入留言内容,并模拟点击发表按钮,于是就能发布带有恶意代码的留言。好友看了中招后,又传播给他们的好友。。。从而形成蠕虫扩散。 那么有没有一种机制,让「发表留言」必须通过用户的「真实点击」按钮才能完成,而无
前端教程
2018/03/05
9.2K0
对抗蠕虫 —— 如何让按钮不被 JS 自动点击
python的tkinter编程(十)Radiobutton单选按钮,CheckButton复选按钮 的详细解读
Radiobutton单选按钮 CheckButton复选按钮
一写代码就开心
2020/11/20
1.9K0
python的tkinter编程(十)Radiobutton单选按钮,CheckButton复选按钮  的详细解读
SQVI-如何自行创建报表?
在项目实施过程中,SAP标准报表提供的功能不能满足一些特殊的需求,因而会有一些临时的报表需求,若开发人员临时写一个报表,需要开发测试过程,时间较长,此时,实施工程师可以使用SAP提供的SQVI功能,快速自定义一个自己需要的报表。
用户5495712
2019/11/07
1.1K0
SQVI-如何自行创建报表?
android让返回按钮失效
先发制人,后发制于人。——《汉书》 我们可以重写Activity中的onBackPressed方法去实现 例如 ...就是这样
阿超
2022/08/16
1K0
android让返回按钮失效
python的tkinter编程(一)什么是tkinter,第一个基于tkinter的GUI编程,弹出窗口,创建按钮,并且在这个按钮上面加点击事件
1 创建出一个窗口 2 在窗口上面布局组件 3 让各种各样的组件活起来,也就是让各个组件有事件
一写代码就开心
2020/11/20
2.8K0
python的tkinter编程(一)什么是tkinter,第一个基于tkinter的GUI编程,弹出窗口,创建按钮,并且在这个按钮上面加点击事件
PyQt5 技巧篇-如何让窗体只显示关闭按钮
默认我们的窗体的放大、缩小、关闭按钮都是显示的,想要个性化化显示,需要我们自己设置。
小蓝枣
2020/09/23
2.8K0
【tkinter系列 第十课 TopLevel窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/11
3.5K0
如何正确的创建和销毁 Java 对象?
点击关注公众号,Java干货及时送达 一、介绍 Java由Sun Microsystems发明并在1995年发布,是世界上使用最广泛的编程语言之一。Java是一个通用编程语言。由于它拥有功能强大的库、运行时、简单的语法、平台无关(Write Once, Run Anywhere - WORA)以及令人敬畏的社区从而吸引了很多的开发者。 本系列文章我们我们将会覆盖一些高级的Java概念,我们假设你对Java语言已经有一些基础知识。本系列文章并不是一个完整的参考,而是一个将您的Java技能提升到下一个级别的详
Java技术栈
2022/05/27
1.9K0
如何正确的创建和销毁 Java 对象?
销毁MBProgressHUD
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51065513
用户1451823
2018/09/13
9550
如何正确的创建和销毁 Java 对象
> 作者 : RonTech ,链接: blog.csdn.net/zyhlwzy/article/details/78937421
Java小咖秀
2021/04/28
2.9K0
如何正确的创建和销毁 Java 对象
如何正确的创建和销毁Java对象
blog.csdn.net/zyhlwzy/article/details/78937421
好好学java
2021/04/30
1.4K0
如何正确的创建和销毁Java对象
如何正确的创建和销毁 Java 对象?
Java由Sun Microsystems发明并在1995年发布,是世界上使用最广泛的编程语言之一。Java是一个通用编程语言。由于它拥有功能强大的库、运行时、简单的语法、平台无关(Write Once, Run Anywhere - WORA)以及令人敬畏的社区从而吸引了很多的开发者。
Spark学习技巧
2023/03/21
2.3K0
如何正确的创建和销毁 Java 对象?
点击加载更多

相似问题

如何使按钮自行销毁?

12

Python:如何销毁同名按钮(tkinter)

12

如何让tkinter按钮销毁/退出嵌套函数中的根窗口?

10

单击后销毁Tkinter按钮

214

单击后tkinter销毁按钮

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文