2014-05-23 109 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但是一旦你啓動並運行你的代碼就會開始工作。實現此目的的唯一方法是實際擁有用戶的用戶名和密碼。

相關問題