तक पहुंचने के लिए काम नहीं करता है। मैं एक एएसपी.NET पृष्ठ बनाने की कोशिश कर रहा हूं जो टीएफएस में एक कार्य आइटम जोड़ता है।आईआईएस 7 प्रतिरूपण टीएफएस रिपोजिटरी
मैं प्रतिरूपण और Windows प्रमाणीकरण सक्षम है
<authentication mode="Windows" />
<identity impersonate="true" password="" userName="" />
<customErrors mode="Off" />
पेज में, मैं TFS का उपयोग और एक काम आइटम जोड़ने के लिए प्रयास करें:
TfsTeamProjectCollection prjCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("xxx"));
WorkItemStore store = prjCollection.GetService<WorkItemStore>();
...
हालांकि, यह केवल काम करता है जब मैं चयन एएसपी.NET प्रतिरूपण में विशिष्ट उपयोगकर्ता और प्रमाण-पत्र संग्रहित करें। यह काम नहीं करता है जब प्रमाणीकृत उपयोगकर्ता चयनित है।
मैंने जांच की है कि विशिष्ट यूज़र प्रमाणीकृत के समान है, लेकिन मुझे बाद के मामले में अनुमति त्रुटियां मिलती हैं (जो इंगित करती है कि प्रतिरूपण सही ढंग से काम नहीं करता है)।
TF30063: You are not authorized to access XXX. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.AsyncWebRequest.ExecRequest(Object obj)
--- End of inner exception stack trace ---
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ProcessHttpResponse(HttpWebResponse response, Stream responseStream, WebException webException, XmlReader& xmlResponseReader)
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ExecWebServiceRequest(HttpWebRequest request, XmlWriter requestXml, String methodName, HttpWebResponse& response)
at Microsoft.TeamFoundation.Framework.Client.LocationWebService.Connect(Int32 connectOptions, ServiceTypeFilter[] serviceTypeFilters, Int32 lastChangeId)
at Microsoft.TeamFoundation.Framework.Client.FrameworkServerDataProvider.Connect(ConnectOptions connectOptions)
at Microsoft.TeamFoundation.Framework.Client.FrameworkServerDataProvider.EnsureConnected(ConnectOptions optionsNeeded)
at Microsoft.TeamFoundation.Framework.Client.FrameworkServerDataProvider.get_InstanceId()
at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.InitializeInternal()
at Microsoft.TeamFoundation.Client.TfsTeamProjectCollection.InitializeTeamFoundationObject(String fullName, Object instance)
at Microsoft.TeamFoundation.Client.TfsConnection.CreateServiceInstance(Assembly assembly, String fullName)
at Microsoft.TeamFoundation.Client.TfsConnection.GetService(Type serviceType)
at Microsoft.TeamFoundation.Client.TfsConnection.GetService[T]()
at ASP.index_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
निम्न चर दोनों ही मामलों के लिए एक ही लग रही है:
HttpContext.Current.Request.LogonUserIdentity.Name
HttpContext.Current.Request.IsAuthenticated
HttpContext.Current.User.Identity.Name
System.Environment.UserName
System.Security.Principal.WindowsIdentity.GetCurrent().Name
कोई भी विचार?
संपादित करें:
दरअसल, के रूप में जॉन नीचे उल्लेख किया है, इस मुद्दे को Kerberos डेलिगेशन के कारण होता है।
मैं निम्न आलेख और साथ उपकरण को समझा और इस को कम करने में बहुत उपयोगी पाया गया है:
DelegConfig - A Tool To help resolve Kerberos authentication and delegation issues
+1 ... बस आईआईएस पर एक वेब ऐप के रूप में "अन्य मशीन" पर, टीएफएस के साथ इंटरफेस, वेब आधारित यूई टूल्स का एक सेट तैनात किया गया। मैं इस पोस्ट में वर्णित वही व्यवहार देख रहा हूं। कोई ज्ञात कामकाज? अग्रिम में धन्यवाद। – culturalanomoly
हाँ। मेरे उत्तर में "डबल हॉप" लिंक पर क्लिक करें। –