我们终于解决了这个问题。我们的网络管理员已禁用双跳,因此当模拟作为
domain\jmeyer
,应用程序仍在尝试使用连接到SRS盒
domain\web01$
. 为什么要这样设置?因为双跳是一个巨大的安全漏洞。(有人告诉我。这听起来像你要读的东西吗
The Daily WTF
?)
我们的解决方案是创建一个通用的
domain\ssrs_report_services
用户,并使用以下网络凭据与该用户连接
public class CustomCredentials : IReportServerCredentials
{
public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = password = authority = null;
return false;
}
public WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get { return new NetworkCredential("ssrs_report_services", "password", "domain") ; }
}
}
上面是一个经典的例子,你可以在互联网上找到。