c# - 有没有办法在没有第三方库的情况下在 .NET Core 中获取 EmployeeID?
问题描述
我曾经使用 UserPrincipal 类来检索用户的活动目录信息,特别是 EmployeeId(不是用户名,我们通常不使用它来将员工与 sql 中的特定数据点联系起来)。但是,在 .net 核心中,该类不存在,而且我对 .net 核心还很陌生,所以我不确定它的很多功能在 Intranet 设置中如何工作。我知道很多人可能无法使用跨平台的 asp.net 核心和其他不知道活动目录的服务器类型。
下面是我在常规 asp.net 环境中用于获取员工 ID 的代码。
var userContext = System.Web.HttpContext.Current;
PrincipalContext pcxt = new PrincipalContext(ContextType.Domain, "mydomain.com");
UserPrincipal uPrincipal = UserPrincipal.FindByIdentity(pcxt, IdentityType.SamAccountName, userContext.User.Identity.Name);
return uPrincipal.EmployeeId;
我可以使用什么样的代码来获取相同的信息?没有第三方库可以吗?看来 IIS 服务器可能会通过声明传输我需要的某种信息?我试图做研究,但每件事都会让我走上更多的研究道路,我不知道从哪里开始。
解决方案
您现在要查找的内容已移至 Net Core。用户主体位于 HttpContext 上,但您可以通过使用依赖注入注入的 IHttpContextAccessor 进行访问。这是 Microsoft 的一个示例:https ://docs.microsoft.com/en-us/aspnet /core/fundamentals/http-context?view=aspnetcore-2.2
推荐阅读
- nginx - 使用 nginx 为静态内容设置过期标头
- python - Pandas:基于多列在时间序列上创建事件计数器
- python - 导入的python文件,里面有相对路径
- php - 来自powershell的肥皂插入请求xml格式
- kubernetes - Kubernetes 仪表板不显示 pod 消耗的 CPU 和内存
- postgresql - 通过 SPARK 为 JDBC 创建索引
- python - 自动创建列表和追加元素
- javascript - 我在连接到数据库时遇到错误使用节点包 mysql v2.16.0 错误:数据包乱序。得到:80 预期:0
- javascript - 带有csv输入的代码不起作用打字稿javascript d3
- rust - 对 Box 的使用寿命感到困惑
指导