Sto tentando di creare un bug in TFS2010 dalla rappresentazione di un utente, ma sempre ottenereTFS 2010 - Perché ricevo l'errore "TF30063 Non sei autorizzato ad accedere .." durante la rappresentazione?
"TF30063 You are not authorized to access.."
ho l'autenticazione utilizzando un account di servizio e quindi tentare di impersonare un account utente separato. Posso creare correttamente articoli di lavoro utilizzando entrambi gli account sia a livello di codice che nell'interfaccia utente web. Tuttavia, quando provo a creare l'elemento di lavoro utilizzato un account rappresentato (in entrambi i casi) ottengo sempre questo errore. Il mio codice è:
public int Save(List<KeyValuePair<string, string>> values, ticketType type,string user)
{
// get the Uri to the project collection to use
Uri tfsuri = new Uri("http://94.23.12.119:8085/tfs");
// get a reference to the team project collection (authenticate as generic service account)
using (var tfs = new TfsTeamProjectCollection(tfsuri, new System.Net.NetworkCredential("username", "password", "servername")))
{
tfs.EnsureAuthenticated();
//Now get the details of the user we want to impersonate
TeamFoundationIdentity identity = GetImpersonatedIdentity(tfsuri,tfs,user);
//Now connect as the impersonated user
using (TfsTeamProjectCollection ImpersonatedTFS = new TfsTeamProjectCollection(tfsuri, identity.Descriptor))
{
ImpersonatedTFS.EnsureAuthenticated();
var workItemStore = GetWorkItemStore(ImpersonatedTFS);
// create a new work item
WorkItem wi = new WorkItem(GetWorkItemType(type, workItemStore));
{
//Values are supplied as a KVP - Field Name/Value
foreach (KeyValuePair<string,string> kvp in values)
{
if (wi.Fields.Contains(kvp.Key))
{
wi.Fields[kvp.Key].Value = kvp.Value;
}
}
ValidationResult = wi.Validate();
}
if (ValidationResult.Count == 0)
{
wi.Save();
return wi.Id;
}
else
{
return 0;
}
}
}
}
Si ottiene con successo l'identità rappresentata ma cade sopra su
ImpersonatedTFS.EnsureAuthenticated();
Entrambi i conti hanno il 'Make richieste per conto di altri' set di autorizzazioni.
Quanti luppoli stai facendo per arrivare a tfs? Nel caso di più nodi X-> Y-> Z, il servizio sulla casella Y potrebbe essere in grado di impersonare l'id del chiamante sulla casella X. Tuttavia, non si ha il diritto di passare tale rappresentazione su un servizio su un altro ancora casella Z. – user957902
Solo un salto per quanto ne so. – Simon