【问题标题】:What does error 110 per AuthzInitializeContextFromSid signify? "While trying to retrieve the authorization groups, an error (110) occurred."每个 AuthzInitializeContextFromSid 的错误 110 表示什么? “在尝试检索授权组时,发生错误 (110)。”
【发布时间】: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


【解决方案1】:

错误 5 通常意味着您有一个ERROR_ACCESS_DENIED win32 error。如果您正在访问只能使用管理权限查询的低级 API,或者您正在访问的对象具有拒绝从您的程序运行的进程令牌访问的 ACL,则可能会发生这种情况。

简而言之:尝试提升运行您的应用程序。如果它有效,则在没有提升的情况下运行时您的访问权限不足。

【讨论】:

  • 实际上,我得到了一个错误 110。奇怪的是它在大多数情况下都能正常工作。只是偶尔会以 110 失败;当它确实失败时,重新启动会修复它。另外,不确定在 asp.net 应用程序中运行提升如何工作?已经在完全信任的情况下运行。
  • 在我的情况下,当两个 asp.net 应用程序使用相同的应用程序池帐户运行并且都调用 System.DirectoryServices.AccountManagement.AuthZSet 时,会发生这种情况。我认为这与 nt 安全性有关,其中只能使用同一帐户从 Windows 设备建立与 AD 的单个连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多