在 Office 网络上将 AZROLESLib 与 C# 结合使用
using AZROLESLib with C# on Office Network
我正在将一些旧的 Web 服务转换为 Web API,这包括一个从 AzMan 获取信息的 AZROLESLib 实用程序。当我拨打以下电话时:
_applicationStore.Initialize(0, authorizationStore, null);
我收到以下异常:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
以前的版本使用以下方法来解决这个问题:
Service.Credentials = System.Net.CredentialCache.DefaultCredentials;
我需要做什么才能访问授权存储?我在网络位置和本地 PC 上都试过了,两者都有相同的授权问题。我在公司提供的网络安全的办公网络中,因此对文件的访问仅限于用户。我相信这是在尝试以 IIS 用户身份执行任务,而不是使用我的用户。有什么方法可以确保它将使用当前用户的凭据而不是 IIS APPPOOL\ASP.NET v4.0
来调用它
编辑
我可以在 html 页面和 javascript 调用网络 API 的上下文中使用它,所以当我从另一个网络调用它时就会出现问题应用程序(也使用 Windows 身份验证)。显然,其他 Web 应用程序在从 Web API.
调用函数时使用应用程序池凭据而不是当前用户的登录凭据
它在第二个 Web 应用程序中不起作用,因为您正试图通过网络两次使用模拟上下文。这就是众所周知的 "double hop" 问题。在这里阅读更多内容:
简而言之,如果您使用 NTLM(windows 集成身份验证)从 A 向 B 进行身份验证,则 B 无法 "reuse" 将身份验证令牌连接到点 C。
我正在将一些旧的 Web 服务转换为 Web API,这包括一个从 AzMan 获取信息的 AZROLESLib 实用程序。当我拨打以下电话时:
_applicationStore.Initialize(0, authorizationStore, null);
我收到以下异常:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
以前的版本使用以下方法来解决这个问题:
Service.Credentials = System.Net.CredentialCache.DefaultCredentials;
我需要做什么才能访问授权存储?我在网络位置和本地 PC 上都试过了,两者都有相同的授权问题。我在公司提供的网络安全的办公网络中,因此对文件的访问仅限于用户。我相信这是在尝试以 IIS 用户身份执行任务,而不是使用我的用户。有什么方法可以确保它将使用当前用户的凭据而不是 IIS APPPOOL\ASP.NET v4.0
编辑
我可以在 html 页面和 javascript 调用网络 API 的上下文中使用它,所以当我从另一个网络调用它时就会出现问题应用程序(也使用 Windows 身份验证)。显然,其他 Web 应用程序在从 Web API.
调用函数时使用应用程序池凭据而不是当前用户的登录凭据它在第二个 Web 应用程序中不起作用,因为您正试图通过网络两次使用模拟上下文。这就是众所周知的 "double hop" 问题。在这里阅读更多内容:
简而言之,如果您使用 NTLM(windows 集成身份验证)从 A 向 B 进行身份验证,则 B 无法 "reuse" 将身份验证令牌连接到点 C。