- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
类似于以下 MSDN 线程中的问题:http://social.msdn.microsoft.com/Forums/en-MY/csharplanguage/thread/4c9fea6c-1d0a-4733-a8ac-e3b78d10e999
我正在尝试验证给定用户是否是某个组的成员,而我们现有的功能解决方案太慢(13-16 秒),我正在尝试加快速度。我目前有:
public bool IsMemberAD(string userName, string groupName)
{
var pc = new System.DirectoryServices.AccountManagement.PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain);
var user = System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(pc, System.DirectoryServices.AccountManagement.IdentityType.SamAccountName,
userName.ToLower());
var group = System.DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(pc, groupName);
if (group == null || user == null) return false;
return user.IsMemberOf(group);
}
有趣的是,只有当用户不直接在组中,而是目标组中的组成员时,它才会返回错误。
例如:
Steve 和 Sam 是两个用户,GroupParent 和 GroupChild 是两个组。 Steve 和 GroupChild 是 GroupParent 的成员。 Sam 是 GroupChild 的成员。如果我在 (Steve, GroupParent) 上调用此函数,它会返回 true。如果我在 (Sam, GroupParent) 上调用它,我会收到错误消息。如果我在 ("fdkjskghkf", GroupParent) 上调用它,它会返回 false。
我在上面链接了一篇有类似问题的文章,但他的解决方案对我不起作用,我仍然遇到同样的错误。想法?
最佳答案
感谢 Jon Theriault here以下代码为我解决了这个问题。
string strName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; // "MW\\dalem"
// This is here because of a .Net error that gets 0x80005000 on "isUser = user.IsMemberOf(groupU);"
string domainName = strName.Split('\\')[0];
var pc = new PrincipalContext(ContextType.Domain, domainName);
关于C# System.DirectoryServices.AccountManagement 未知错误 (0x80005000) UserPrincipal.IsMemberOf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142110/
当我们可以使用 Accountmanager.addAccountExplicitly() 创建包含所有参数的帐户时,为什么我们使用 Accountmanager.addAccount()。 我用谷歌
有什么区别- AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SER
我知道 AccountManager的 addOnAccountsUpdatedListener()可用于获取有关帐户列表更改的通知。如果发生此类事件,框架将调用提供的 OnAccountsUpdat
AccountManager 帐户存储在哪里?它在设备上吗?如果是,它存储在哪个文件夹中? 最佳答案 它存储在这里: Environment.getSystemSecureDirectory().ge
在 AccountManager 教程中 Remembering Your User ,建议: If there's more than one Account in the array, you s
我有一个应用程序正在实现我自己的身份验证器,如 this 中所述文章。它按预期工作正常。现在我需要从 AccountManager 获取谷歌帐户,我是这样做的: Account[] accounts
我尝试在我的应用程序中实现一个客户管理器,以避免用户每次打开应用程序时都必须登录。 所以基本上,我已经有了我的身份验证 Activity ,用户可以在其中放置其登录名和密码,以及我们从服务器接收 to
语境 我的应用程序只存储用户/通行证。不使用 token 。 问题 1 方法 setAccountAuthenticatorResult(Bundle) 和 onResult(Bundle) 旨在通知
Security tips与 AccountManager 相关的章节提到: If credentials are used only by applications that you create,
我正在尝试确定用户是否已添加该帐户,以防止在我的应用程序上多次添加同一帐户。我正在使用我自己的帐户验证器 Activity 。这是我的代码: public class AuthenticatorAct
我正在使用 custom class to expose some custom schema in Active Directory .我正在存储一个二进制 blob,根据项目要求,此数据必须存储在
我想使用他的 Google 帐户对我应用的用户进行身份验证,因为这是在多个设备上对用户进行身份验证的最简单方法。 我的问题是,如果我使用 AccountPicker.newChooseAccountI
我正在开发一个应用程序,它使用 AccountManager 获取 Google 帐户的凭据,该帐户随后用于从 AppEngine 获取 cookie。我注意到我在将应用程序发送给测试人员时发现了错误
我需要一些帮助来了解客户经理为我们提供的服务。我有一个需要 token 才能使用的 Web 服务。例如,如果开发人员想使用我的 api,他们会使用如下 url: http://myservice.co
我在 AccountManager 中保存了一个授权 token ,但是,当我执行 peekAuthToken(account, authTokenType) 时,它返回 null。我的调用者 uid
在文档中,android account manager blockingGetAuthToken 声明如果它的第三个参数notifyAuthFailure 为false,它会提示用户登录 Activ
我了解需要 AccountManager 的用途,并且稍微了解如何使用和实现它。但是,我还不知道我是否可以正确使用它,如果我不拥有它,甚至与我用来验证我的应用程序的服务相关联。我正在编写一个使用 RE
我一直在努力弄清楚如何使用 Google 客户经理为用户提供一种登录我的应用程序的方法。 我已返回 AuthToken,但我如何才能获得一些不会更改的帐户的唯一信息,例如 uniqueID 或其他信息
我正在创建两个应用程序。主应用程序包含一个登录名,用于创建自定义帐户。对于第二个应用程序,我想从主应用程序访问用户数据(刷新 token 存储在那里)。 主应用正在创建自定义帐户,刷新 token 通
我正在尝试获取 Google 帐户的授权 token ,因为我正在使用以下代码: AccountManager acoountManager = AccountManager.get( getCon
我是一名优秀的程序员,十分优秀!