将AZROLESLib与C#一起在办公网络上使用
我正在将一些旧的Web服务转换为Web API,其中包括从AzMan获取信息的AZROLESLib实用程序。当我打以下电话时:将AZROLESLib与C#一起在办公网络上使用,c#,asp.net-web-api,.net-4.5.2,C#,Asp.net Web Api,.net 4.5.2,我正在将一些旧的Web服务转换为Web API,其中包括从AzMan获取信息的AZROLESLib实用程序。当我打以下电话时: _applicationStore.Initialize(0, authorizationStore, null); 我收到以下例外情况: 访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝)) 以前的版本使用以下方法来解决此问题: Service.Credentials = System.Net.CredentialCache.DefaultCr
_applicationStore.Initialize(0, authorizationStore, null);
我收到以下例外情况:
访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝))
以前的版本使用以下方法来解决此问题:
Service.Credentials = System.Net.CredentialCache.DefaultCredentials;
我需要做什么才能访问授权存储?我在网络位置和本地PC上都试过,但都有相同的授权问题。我在一个由公司提供网络安全的办公网络上,因此对文件的访问仅限于用户。我相信这是试图以IIS用户的身份执行任务,而不是使用我的用户。是否有任何方法可以确保它将使用当前用户的凭据而不是IIS APPPOOL\\ASP.NET v4.0
编辑
我能够在html页面和对web API的javascript调用的上下文中使用它,因此当我从另一个web应用程序(也使用Windows身份验证)调用它时,问题就出现了。显然,当从web API调用函数时,另一个web应用程序正在使用应用程序池凭据,而不是当前用户的登录凭据。第二个web应用程序无法使用该凭据,因为您试图在网络上使用模拟上下文两次。这就是众所周知的“双跳”问题。请在此处阅读更多信息: 简而言之,如果您使用NTLM(windows集成身份验证)从A到B进行身份验证,B将无法“重用”身份验证令牌到联系点C