我编写了一个简单的ASP.Net WebAPI,它使用休息调用从本地tfs服务器下载文件。问题是当我从我的用户帐户(corp域)连接到此站点,并将webRequest中的凭据设置为CredentialsCache.DefaultCredentials时,它工作正常,因为我是tfs项目上的vlid用户。 现在我团队中的其他人希望使用相同的webAPI,当他们点击相同的网址时,我可以看到我的凭据再次用于下载文件。 我怀疑这是因为在我的控制器代码中使用了CredentialsCache.DefaultCredentials,但是我无法找到一种方法,使用该方法可以使用客户端的标识来用于下载请求。 我的问题是,有没有办法提取远程用户(在同一个域)的Windows身份或网络凭据,我可以用于身份验证。我很抱歉,如果这是一个DUP但我找不到我的问题的目标答案。示例代码粘贴在下面。
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Credentials = CredentialCache.DefaultNetworkCredentials;
try
{
var webResponse = request.GetResponse();
var webStream = webResponse.GetResponseStream();
if (webStream != null)
{
var objReader = new StreamReader(webStream);
return objReader.ReadToEnd()
}
}
答案 0 :(得分:0)
我不知道我是否理解正确,但我认为假冒是您正在寻找的: