【发布时间】:2011-06-02 17:24:25
【问题描述】:
我的症状和 System.DirectoryServices.AccountManagement 堆栈跟踪与 While trying to retrieve the authorization groups, an error (5) occurred 完全相同,只是我收到错误 110,docs 解释为 ERROR_OPEN_FAILED:系统无法打开指定的设备或文件。
在我的情况下,此功能在 ASP.NET v4 应用程序中前一天工作,第二天停止工作。我正在使用我创建的 AD 服务帐户来建立与 AD 的连接。服务帐户对目录中的特定 OU 具有管理员权限。
我已将异常缩小到对 System.DirectoryServices.AccountManagement.AuthZSet 构造函数中的 AuthzInitializeContextFromSid 本机函数的调用。我不清楚为什么会失败,并且由于 user.GetGroups 对我有用(根据其他 SO 链接中给出的答案),我暂时搁置我的研究。
其他人对可能发生的事情有任何想法吗?
【问题讨论】:
-
C++ 与 .NET 问题有什么关系?
-
@ildjarn,他正在尝试从用 C# 编写的 ASP.NET Web 应用程序中检索授权组。该错误源于某些 C++ 代码(使用 Reflector 找到。)
-
这是一个抛出错误的win32函数。 #include
-
.NET 中的大部分功能源自用 C 或 C++ 编写的本机代码,但这并不意味着任何涉及 .NET 的问题都应标记为 C 或 C++。我认为在这种情况下这是不恰当且无关的。
-
我理解您的担心;但是,这是 .NET 没有适当地包装本机功能的情况;毕竟,.NET 基类库何时会抛出仅包含 Win32 错误代码的异常?此外,一个有兴趣了解更多关于 Win32 的 .NET 开发人员应该如何在没有像您这样经验丰富的退伍军人的支持的情况下更多地了解 Windows 的本机表面?如果你有一些想法,请帮助一个人。我很困惑。
标签: asp.net c++ security winapi active-directory