问题标签 [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.
c# - 表单验证 - 发生操作错误 FindByIdentity
我有一个表单身份验证:
我有一个登录页面并检查我所做的凭据:
这行得通。然后我想检查成员组。因此我这样做:
在 localhost 中它可以工作,但是当我发布它时它没有并且发生此错误:
我试图添加
并且
NetworkService
然后我尝试将我的游泳池的身份更改为LocalSystem
但没有任何改变。我不明白为什么在我自己的电脑上一切正常,即使使用ApplicationPoolIdentity
..我知道这个问题已经被问过很多次,但我尝试了我发现的每一个建议,但它们对我不起作用..请帮助我!
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 以允许模拟工作
- 调整我的代码做同样的事情
jsp - pageContext.request.userPrincipal 是否存储在会话中?我也可以得到密码吗?
我正在学习 Spring 安全性,据我所知,通过使用request.getUserPrincipal()
我们可以访问该名称,我们可以通过以下方式获取名称pageContext.request.userPrincipal.name
,
这是我的代码(一切正常):
我的问题是:
1)。这个名字pageContext.request.userPrincipal.name
是 从会话中检索到的吗?因为<%@page session="true"%>
在表格的顶部
2)。是否也可以找回密码?我的意思是pageContext.request.userPrincipal.password
,如果不是,我怎样才能获得表单中的密码?
谢谢你,我非常感谢你帮助我理解这个框架,因为我没有足够的钱买一些弹簧书,我只是在互联网上使用一些教程,所以你的帮助对我来说意义重大。
c# - C# Active Directory - 查询不成功的登录尝试
有没有办法使用 C# 返回 Active Directory 登录尝试列表?例如,我想以某种方式返回一个包含以下内容的列表
- 直流名称
- 地点
- 用户状态
- 密码错误
- 最后一个坏密码
- PWD 最后一组
- 锁定时间
从本质上讲,我想知道访问 Active Directory 的哪个设备在密码更新时导致密码锁定。
我已经研究过在其中使用UserPrincipal
该类,System.DirectoryServices.AccountManagement
但我找不到一种允许跨 DC 聚合的方法。
提前感谢您的任何帮助或建议!
c# - 从 UserPrincipal 获取 WindowsPrincipal
目标
我正在编写一个抽象各种 Windows 用户机制的类。我的班级知道用户的帐户名和域(如果有的话)。我试图水合一个属性,该属性指示用户是否对其所属的域或本地环境具有管理权限。
问题
该类WindowsPrincipal
通过 提供该信息IsInRole
,但它的构造函数需要一个WindowsIdentity
,如果没有用户主体名称 (UPN),我无法找到建立该信息的方法。该UserPrincipal.UserPrincipalName
属性对域用户可用,但对本地用户为空。还有另一种方法可以WindowsPrincipal
从 a中获取 aUserPrincipal
吗?或者,没有它还有其他方法可以实现目标吗?
来源
提前致谢。
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 - 解决方法:
c# - ActiveDirectory 更新获取 UnauthorizedAccessException 的用户
当我尝试更新域控制器上的用户描述时,我收到错误 UnauthorizedAccessException。我已经验证了我使用的用户名和密码实际上能够更新用户。我以服务用户名和密码登录并手动更改数据。这是我的代码。
Common.DCData 是一个从数据库获取数据的简单类。我已经仔细检查了数据库中的用户名和密码
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)
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”是从哪里来的?
asp.net - DirectoryServices.AccountManagement UserPrincipal - 更改或重置密码后旧密码仍然有效 5 分钟
密码重置工作正常,用户可以使用新密码登录,但旧密码仍然有效。我的旧密码在 5 分钟后过期。用户被添加到密码策略组中。我尝试通过两次调用 set password 方法来停止验证旧密码。但是因为我已将最低密码年龄设置为 1 天。这个技巧不起作用。
任何帮助将不胜感激。