问题标签 [groupprincipal]
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.
.net - System.DirectoryServices.AccountManagement.GroupPrincipal 线程安全吗?
我正在编写一个将批量创建用户的程序,我有一个操作是创建过程的一部分,它会阻塞大约 5 秒,为了解决这个问题,我打算让它成为线程并将所有东西都放在线程池中。
我的问题是,如果我在线程之外创建原则并将组原则传递给线程并调用group.Members.Add(u)
,group.Save()
我会遇到麻烦吗?从每个线程内部生成一个新的组主体会更好吗?
c# - GroupPrincipal 重命名组
我正在尝试重命名一个组。我的代码如下所示
问题是它崩溃group.DisplayName = "NewGroupName";
并抛出异常
属性对此商店类型无效。
如果我注释掉该行,代码将继续运行,但我想更改显示名称。我做了一些研究,发现了这一点。但是我使用的是框架 4.0。有谁知道另一个该怎么做,或者我会以错误的方式解决这个问题?
.net - 我真的需要在每个 Principal 上调用 Dispose() 吗?
我正在使用 .NET 的System.DirectoryServices.AccountManagement
命名空间做一些 Active Directory 工作。我注意到Principal
implements IDisposable
,这会引起一些头痛,因为该名称空间中的所有内容都继承了Principal
。
例如,考虑以下代码来获取组中的所有用户:
该片段中的每个类型都实现IDisposable
了 ,包括搜索返回的所有用户和搜索结果集本身。
处理domain
andgroup
对象并不是什么大问题(使用块很容易using()
),但是我该怎么处理每个结果呢?我真的必须遍历该users
集合并处理每一个吗?
c#-4.0 - GroupPrincipal 抛出“System.Runtime.InteropServices.COMException (0x8007200A):指定的目录服务属性或值不存在。”
我System.DirectoryServices.AccountManagement
用来查询用户,然后找到该用户的组。
我可以抓取底层DirectoryEntry
对象并转储其属性和值,但是一旦GroupPrincipal.DisplayName
访问该属性(或与此相关的任何属性),它就会引发以下异常:
"System.Runtime.InteropServices.COMException (0x8007200A):指定的目录服务属性或值不存在。\r\n\r\n 在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)\r\n 在 System。 DirectoryServices.DirectoryEntry.Bind()\r\n 在 System.DirectoryServices.DirectoryEntry.get_SchemaEntry()\r\n 在 System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)\r\n 在 System.DirectoryServices.AccountManagement。 ADStoreCtx..ctor(DirectoryEntry ctxBase, Boolean ownCtxBase, String username, String password, ContextOptions options)\r\n 在 System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry)\r\n 在 System.DirectoryServices.AccountManagement.PrincipalContext .DoLDAPDirectoryInitNoContainer()\r\n 在 System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()\r\n 在 System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()\r\n 在 System.DirectoryServices.Account Management.PrincipalContext.get_QueryCtx ()\r\n 在 System.DirectoryServices.AccountManagement.Principal.HandleGet[T](T& currentValue, String name, LoadState& state)\r\n 在 System.DirectoryServices.AccountManagement.Principal.get_DisplayName()\r\n 在ConsoleApplication9.Program.Main(String[] args)"AccountManagement.Principal.HandleGet[T](T& currentValue, String name, LoadState& state)\r\n 在 System.DirectoryServices.AccountManagement.Principal.get_DisplayName()\r\n 在 ConsoleApplication9.Program.Main(String[] args) "AccountManagement.Principal.HandleGet[T](T& currentValue, String name, LoadState& state)\r\n 在 System.DirectoryServices.AccountManagement.Principal.get_DisplayName()\r\n 在 ConsoleApplication9.Program.Main(String[] args) "
为什么我可以转储底层的原始属性,DirectoryEntry
但不能直接调用任何属性GroupPrincipal
?什么会导致这个异常?请注意,这不会发生在“域用户”组上,而是发生在后续组上,它确实......
asp.net - 如何获取当前用户主体
我想使用 Windows 身份验证并获取用户信息,例如 Givenname、Surname 等。我UserPrincipal.Current
在 IIS 中使用过,但出现异常,但 IIS express 看起来不错。
c# - 扩展 UserPrincipal 类
我对 UserPrincipal 类进行了扩展以检索我需要的一些缺失的属性:
然后,我可以像这样轻松搜索:
所以,我的新任务和我当前的问题是:对于 ActiveDirectory 中搜索到的组,有必要使用扩展类获取用户列表。
我怎样才能实现目标?
作为解决方法,我已经创建了一个函数来检索属性:
先感谢您。
principalcontext - GetMembers(true) 不列出成员组的所有用户
首先这是我的代码:
我的“otheradmingroup”的唯一成员是“Domain Admins”组,其中包含 6 个广告用户。
执行上述代码后,返回的列表仅包含我的“域管理员”的前 4 个成员
c# - 从不同域 C# 将用户添加到 AD 通用组
我们在同一个林中有许多域(即 sw.main.company.com、nw.main.company.com、main.company.com),我可以控制 sw.main.company.com 中的一个 OU设置通用 Active Directory 组。
在默认 AD 端口上使用 System.DirectoryServices.AccountManagement .NET 4.5 等将“sw”域用户添加到组中没有困难(c#),但是当涉及到从其他域(nw、mw、等),我在设置新的 PrincipalContext(ContextType.Domain "sw.main. company.com:3268", "DC=main,DC=company,DC=com")。
所有域控制器也是全局目录服务器,调用端口 3268 允许来自其他域的用户正确解析,但我无法使用 GlobalPrincipal.Save() 命令提交添加而不抛出错误。
我在下面包含了相关代码以及详细的错误堆栈。我需要这方面的帮助。
System.InvalidOperationException 未处理HResult=-2146233079 Message=服务器不愿意处理请求。Source = System.DirectoryServices.AccountManagement StackTrace:在 System.DirectoryServices.AccountManagement.ADStoreCtx.UpdateGroupMembership(主体组,DirectoryEntry de,NetCred 凭据,AuthenticationTypes authTypes)在 System.DirectoryServices.AccountManagement.SDSUtils.ApplyChangesToDirectory(主体 p,StoreCtx storeCtx,GroupMembershipUpdater updateGroupMembership、NetCred 凭据、AuthenticationTypes authTypes) 在 System.DirectoryServices.AccountManagement.ADStoreCtx.Update(Principal p) 在 System.DirectoryServices.AccountManagement.Principal.Save() 在 ExampleUsers.SyncAD.AddUserToGroup(String userId, String groupName) 在 c: \SourceControl\ExampleUsers\ExampleUsers\SyncAD.cs:ExampleUsers.SyncAD.SyncADUsers() 中的第 33 行:\SourceControl\ExampleUsers\ExampleUsers\SyncAD.cs:ExampleUsers.Program 中的第 18 行。Main(String[] args) in c:\SourceControl\ExampleUsers\ExampleUsers\Program.cs:System.AppDomain._nExecuteAssembly(RuntimeAssembly 程序集,String[] args) 中的第 62 行 System.AppDomain.ExecuteAssembly(String assemblyFile,证据 assemblySecurity , String[] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx ) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.ThreadHelper 的 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)。ThreadStart() InnerException: System.DirectoryServices.DirectoryServicesCOMExceptionHResult=-2147016651 Message=服务器不愿意处理请求。Source=System.DirectoryServices ErrorCode=-2147016651 ExtendedError=8245 ExtendedErrorMessage=00002035:LdapErr:DSID-0C090B3E,注释:不允许通过 GC 端口操作,数据 0,v1db1 StackTrace:在 System.DirectoryServices.DirectoryEntry.CommitChanges() 在系统。 DirectoryServices.AccountManagement.ADStoreCtx.UpdateGroupMembership(主体组,DirectoryEntry de,NetCred 凭据,AuthenticationTypes authTypes)InnerException:
c# - GroupPrinciple.FindbyIdentity 太慢了
我创建了一个函数,可以一次将一个用户添加到特定组(管理员等),但响应 GroupPrinciple(5-10 秒)和 group.members.add(5-10 秒)调用似乎需要很长时间并减慢我的应用程序,响应需要将近 15-20 秒,有没有更快的方法来做到这一点?
c# - 无法使用 PrincipalContext 检索 Active Directory 中的一个特定组用户
获取异常
system.directoryservices.accountmanagement.principaloperationexception :服务器上没有这样的对象
试图让一个组的所有成员。仅获得一个特定组的例外,能够获得具有相同代码的其他组的成员。
我正在尝试以下代码
该组包含600名成员,部分成员是跨域用户