问题标签 [userprincipal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
288 浏览

c# - 表单验证 - 发生操作错误 FindByIdentity

我有一个表单身份验证:

我有一个登录页面并检查我所做的凭据:

这行得通。然后我想检查成员组。因此我这样做:

在 localhost 中它可以工作,但是当我发布它时它没有并且发生此错误:

我试图添加

并且

NetworkService然后我尝试将我的游泳池的身份更改为LocalSystem但没有任何改变。我不明白为什么在我自己的电脑上一切正常,即使使用ApplicationPoolIdentity..我知道这个问题已经被问过很多次,但我尝试了我发现的每一个建议,但它们对我不起作用..请帮助我!

0 投票
1 回答
1555 浏览

c# - ASP.NET MVC 5:应用程序池、Windows 身份验证和 Active Directory

背景:

我有一个连接外部 API 的 MVC 5/C# 应用程序。它使用Active Directory用户的Principal Context授权。该应用程序检查是否将UserPrincipal.Current其 Un/Pw 组合存储在 Db 中以用于稍后在外部 API 上的任何操作。

  • 我知道UserPrincipal.Current默认情况下会返回 App Pool 的身份。
  • 我也了解将 Impersonate 设置为 True IIS 将使用当前用户的上下文,如下所示: <system.web> <identity impersonate="true"/>...

但是,如果我打开模拟(真),那么我会得到这个:

因此,我将其更改app pool为使用“经典”(我认为这不是我应该采取的答案或路径),并且出现此错误:

显然,这在 IIS Express 中效果很好,它认为我(域\用户名)很好。但是当我将它切换到 IIS 或将其部署到实际的 Web 服务器时,我遇到了这些问题。

我需要获取当前用户/主体,以便我可以将他们的 SID 和凭据存储到 Db 中的外部 API。然后在使用站点/应用程序时,它会自动神奇地使用他们的信用在 API 中根据需要进行工作。

我需要做什么:

  • 设置 IIS 以允许模拟工作
  • 调整我的代码做同样的事情
0 投票
1 回答
7347 浏览

jsp - pageContext.request.userPrincipal 是否存储在会话中?我也可以得到密码吗?

我正在学习 Spring 安全性,据我所知,通过使用request.getUserPrincipal() 我们可以访问该名称,我们可以通过以下方式获取名称pageContext.request.userPrincipal.name

这是我的代码(一切正常):

我的问题是:

1)。这个名字pageContext.request.userPrincipal.name是 从会话中检索到的吗?因为<%@page session="true"%>在表格的顶部

2)。是否也可以找回密码?我的意思是pageContext.request.userPrincipal.password,如果不是,我怎样才能获得表单中的密码?

谢谢你,我非常感谢你帮助我理解这个框架,因为我没有足够的钱买一些弹簧书,我只是在互联网上使用一些教程,所以你的帮助对我来说意义重大。

0 投票
1 回答
331 浏览

c# - C# Active Directory - 查询不成功的登录尝试

有没有办法使用 C# 返回 Active Directory 登录尝试列表?例如,我想以某种方式返回一个包含以下内容的列表

  • 直流名称
  • 地点
  • 用户状态
  • 密码错误
  • 最后一个坏密码
  • PWD 最后一组
  • 锁定时间

从本质上讲,我想知道访问 Active Directory 的哪个设备在密码更新时导致密码锁定。

我已经研究过在其中使用UserPrincipal该类,System.DirectoryServices.AccountManagement但我找不到一种允许跨 DC 聚合的方法。

提前感谢您的任何帮助或建议!

0 投票
0 回答
2445 浏览

c# - 从 UserPrincipal 获取 WindowsPrincipal

目标

我正在编写一个抽象各种 Windows 用户机制的类。我的班级知道用户的帐户名和域(如果有的话)。我试图水合一个属性,该属性指示用户是否对其所属的域或本地环境具有管理权限。

问题

该类WindowsPrincipal通过 提供该信息IsInRole,但它的构造函数需要一个WindowsIdentity,如果没有用户主体名称 (UPN),我无法找到建立该信息的方法。该UserPrincipal.UserPrincipalName属性对域用户可用,但对本地用户为空。还有另一种方法可以WindowsPrincipal从 a中获取 aUserPrincipal吗?或者,没有它还有其他方法可以实现目标吗?

来源

提前致谢。

0 投票
0 回答
533 浏览

c# - c# UserPrincipal GetGroups 不使用 SSL

我想通过 SSL 和端口 696 执行 Active Directory 操作并使用此测试代码:

我得到一个例外p.GetGroups(context)

Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.COMException" ist in System.DirectoryServices.dll aufgetreten。

Zusätzliche Informationen: Der Server ist nicht funktionstüchtig。

在防火墙检查后,我们意识到第一部分是通过 LDAPS 和 SSL 处理的,而 getGroups 调用是通过没有 SSL 的 LDAP 处理的,并且被防火墙阻止。

我也试过

和许多其他变体。但我不明白这个问题。

编辑 20160614 - 解决方法:

0 投票
1 回答
52 浏览

c# - ActiveDirectory 更新获取 UnauthorizedAccessException 的用户

当我尝试更新域控制器上的用户描述时,我收到错误 UnauthorizedAccessException。我已经验证了我使用的用户名和密码实际上能够更新用户。我以服务用户名和密码登录并手动更改数据。这是我的代码。

Common.DCData 是一个从数据库获取数据的简单类。我已经仔细检查了数据库中的用户名和密码

0 投票
2 回答
3432 浏览

c# - UserPrincipal.FindByIdentity 导致 COM 错误 0x80005000

我有一个最近从 .Net 4 升级到 4.6.1 的 MVC Intranet 应用程序。此应用程序从 Active Directory 查询用户详细信息,以加载控制器的 User.Identity 属性中不可用的详细信息,并且直到最近才完美地完成了此操作。代码看起来像这样:

该代码在 Visual Studio 2015 中调试时运行良好,但在 IIS 框(Windows Server 2008 R2 上的 v6.1 SP1)上运行时,调用 UserPrincipal.FindByIdentity() 时会引发 COMException (0x80005000)

Web 应用程序运行在专用的应用程序池上,其设置如下:

  • .Net 框架版本 = v4.0
  • Identity = MyDomain\MyAppServiceUser(非交互式 AD 用户帐户)
  • 加载用户配置文件 = false

所有其他设置均按照默认设置。应用程序本身在启用匿名和 Windows 身份验证的情况下运行。服务器已安装 .Net 4.6.1,并且 Intranet 应用程序的所有其他元素似乎运行良好。

在谷歌上搜索到死后,大多数答案似乎表明这是服务帐户查询 AD 的权限问题。为了确认应用程序池运行的服务帐户是否有权查询 Active Directory,我在控制台应用程序中使用了上述代码,并将其作为我自己和服务器上的服务帐户运行 - 在两者中实例它工作得很好。它只有在 IIS 下运行时才会崩溃。

我尝试了许多创建 PrincipalContext 的变体(包括 OU 容器路径等),但结果始终相同。

我正在为此努力,所以任何帮助将不胜感激。

更新 - 其他详细信息

  • 异常类型:System.Runtime.InteropServices.COMException
  • 异常消息:未知错误 (0x80005000)
  • 堆栈跟踪:

在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 在 System.DirectoryServices.DirectoryEntry.Bind() 在 System.DirectoryServices.DirectoryEntry.get_AdsObject() 在 System.DirectoryServices.PropertyValueCollection.PopulateList() 在 System.DirectoryServices.PropertyValueCollection.. ctor(DirectoryEntry entry, String propertyName) at System.DirectoryServices.PropertyCollection.get_Item(String propertyName) at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer() at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit() at System.DirectoryServices.AccountManagement System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() 中的 System.DirectoryServices.AccountManagement.Principal 中的 .PrincipalContext.Initialize()。FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate) at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, IdentityType identityType, String identityValue) at System.DirectoryServices.AccountManagement.UserPrincipal .FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue) at Apollo.Security.ActiveDirectoryUser.Find(String identityName)DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue) at Apollo.Security.ActiveDirectoryUser.Find(String identityName)DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue) at Apollo.Security.ActiveDirectoryUser.Find(String identityName)

0 投票
0 回答
803 浏览

c# - UserPrincipal.FindByIdentity 无法将“GroupPrincipal”类型的对象转换为“UserPrincipal”类型

早上好,

我正在尝试在我们的活动目录中查找用户,但出现以下异常:

我的代码如下,它似乎在过去有效,不知道发生了什么变化。我一直在盯着和调试,找不到问题,请帮忙。

其中 uContext 是:"CN=Users,DC=my,DC=eh,DC=tech,DC=com" 主机是:my.eh.tech.com用户名是:madamzuzu

当我在 AD 中查找用户时,它们会正确显示以下内容DN:CN=madamzuzu;CN=Users,DC=my,DC=eh,DC=tech,DC=com

我不明白“groupprincipal”是从哪里来的?

0 投票
0 回答
110 浏览

asp.net - DirectoryServices.AccountManagement UserPrincipal - 更改或重置密码后旧密码仍然有效 5 分钟

密码重置工作正常,用户可以使用新密码登录,但旧密码仍然有效。我的旧密码在 5 分钟后过期。用户被添加到密码策略组中。我尝试通过两次调用 set password 方法来停止验证旧密码。但是因为我已将最低密码年龄设置为 1 天。这个技巧不起作用。

任何帮助将不胜感激。