用于Web Api的ASP .Net中的Windows身份验证

时间:2013-11-28 08:15:46

标签: c# asp.net rest tfs asp.net-web-api

我编写了一个简单的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()
            }
        }

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解正确,但我认为假冒是您正在寻找的:

http://msdn.microsoft.com/en-us/library/xh507fc5.ASPX