Я пытаюсь создать ошибку в TFS2010, выдавая себя за пользователя, но всегда получаю
"TF30063 You are not authorized to access.."
Сначала я аутентифицируюсь с использованием учетной записи службы, а затем пытаюсь выдать себя за отдельную учетную запись пользователя,Я могу успешно создавать рабочие элементы, используя любую учетную запись как программно, так и в веб-интерфейсе.Однако, когда я пытаюсь создать рабочий элемент, используя олицетворенную учетную запись (в любом случае), я всегда получаю эту ошибку.Мой код:
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;
}
}
}
}
Он успешно получает олицетворенную личность, но переключается на
ImpersonatedTFS.EnsureAuthenticated();
Обе учетные записи имеют набор разрешений «Выполнять запросы от имени других».