获取用户凭据并使用这些凭据访问网络服务的服务器应用程序

时间:2014-05-23 14:13:44

标签: c# asp.net-mvc tfs iis-7.5

我对IIS有点新,并不是100%确定这是可能的。我正在编写一个C#应用程序,需要获取用户网络凭据,然后使用这些凭据连接到TFS。我可以做一个或另一个,但不能同时做两个。

要获取访问该网站的用户凭据,我必须使用NetworkService作为AppPool的标识,并调用credentials = System.Web.HttpContext.Current.User.Identity.Name。我需要获取用户用户名的原因是,稍后使用item.VersionControlServer.GetEffectivePermissions(credentials, item.ServerItem)找出他们有权在TFS中访问哪些项目。

要连接到TFS,我必须将用户凭据作为AppPool的标识,或者通过调用RegisteredTfsConnections.GetConfigurationServer("server");

,让NetworkService访问TFS(不会发生任何事情)

我需要一种方法来使用应用程序获取的凭据来访问TFS,或者我需要一种方法来创建一个具有"网络服务的新用户,例如"能够获取用户的凭据,然后授予该用户访问TFS的权限。

2 个答案:

答案 0 :(得分:1)

您实际上正在点击一种称为“双跃点认证”的东西,如果没有确保您拥有Kerberos令牌,您将无法继续。

configure Kerberos非常复杂,但是一旦你完成并运行你的代码就会开始工作。实现此目的的唯一方法是实际拥有用户的用户名和密码。

答案 1 :(得分:0)

我不知道并且最近发现的是,如果您将IIS设置为以用户身份运行,则可以在IIS中启用Windows身份验证> (选择网站)>身份验证设置并使用HttpContext.Current.User.Identity.Name获取当前登录用户。