TeamFoundationServer и его NetworkCredential
От: Malokhatko  
Дата: 11.10.10 12:48
Оценка:
Добрый день!

Пишу программу (запускается в PreBuildEvent'ах), которая формирует заголовочный файл для проекта с версией (ChangesetID) каждого скомпилированого файла и саму версию программы (по самому высокому ChangesetID локальных файлов).

При получении объекта через фабрику, требуется что бы ранее была выполнена авторизация, для этого обычно открывал папочку Reports в TeamExplorer'e, студия просит авторизацию, дальше эта авторизация видимо попадает в кэш, и с тех пор этот метод работает и не требует авторизации.
tfs = TeamFoundationServerFactory.GetServer(ServerUri);


Но Жизнь идет, и не у всех и не всегда есть Reports, и не имеют они возможности так криво авторизироваться, нашелся правильный метод:
tfs = new TeamFoundationServer(ServerUri, System.Net.CredentialCache.DefaultNetworkCredentials, new UICredentialsProvider());
tfs.Authenticate();

Если кэшированный Credentials не подойдет, то вызовется диалог с приглашением ввести логин и пароль.

Все хорошо, НО введенный пароль и логин не кэшируються, вернее кешируються только для этого процесса (я так думаю), а как сделать так, что бы кэширование произошло на уровне System.Net.CredentialCache?
Что бы когда я вызвал статическую функцию System.Net.CredentialCache.DefaultNetworkCredentials там уже был ранее введенный Credentials.

Компилияция солюшена из десятка проектов, и десять раз вводить логин и пароль не комильфо.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.