我很难让Runtime Impersonation工作。
情境:
什么有用(有点):
如果我使用Web.config打开Web Api 1中的模拟
<authentication mode="Windows"/>
<identity impersonate="true"/>
这不是我们想要的。我们希望只能通过应用程序池帐户访问oData服务。因此,我们不想模拟来自Web Api 1的所有拨出电话。
程序化模拟
我们尝试使用以下代码模拟从Web Api 1到Web Api 2的调用
在Web.config中禁用模拟
<authentication mode="Windows"/>
<identity impersonate="false"/>
模拟从Web Api 1到Web Api 2的调用。
// Impersonate the currently authenticated User
using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate()) {
var request = (HttpWebRequest)HttpWebRequest.Create(uri);
...
...
request.Credentials = CredentialCache.DefaultCredentials;
response = (HttpWebResponse)request.GetResponse();
};
结果:
问题:
任何指针都会有所帮助。
答案 0 :(得分:0)
问题中提到的代码有效!!授权存在一些问题,需要修复。
由于