2014-05-23 58 views
0

我对IIS有点新,并不是100%确定这是可能的。我正在编写一个C#应用程序,需要获取用户网络凭证,然后使用这些凭证连接到TFS。我能够做一个或另一个,但从来没有在同一时间。服务器应用程序获得用户凭证和使用这些凭据访问网络服务

要获取正在访问站点的用户凭证,我必须使用NetworkService作为AppPool的Identity,并致电credentials = System.Web.HttpContext.Current.User.Identity.Name。我需要获取用户名的原因是为了找出他们有权在TFS后使用item.VersionControlServer.GetEffectivePermissions(credentials, item.ServerItem)访问哪些项目。

要连接到TFS我必须把用户凭据作为应用程序池的身份或提供网络服务访问TFS(不是东西,是会发生)通过调用RegisteredTfsConnections.GetConfigurationServer("server");

我要么需要一种方法来使用应用程序访问TFS所获得的凭证,或者我需要一种方法来创建一个具有“Network Service like”功能的新用户,以获取用户的凭据,然后授予此用户访问TFS的权限。

回答

0

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

1

您实质上正在碰到一种名为“双重身份验证”的内容,如果不确定是否拥有Kerberos令牌,您将无法继续操作。

它很复杂到configure Kerberos但是一旦你启动并运行你的代码就会开始工作。实现此目的的唯一方法是实际拥有用户的用户名和密码。

相关问题