Добрый день!
Пишу программу (запускается в 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.
Компилияция солюшена из десятка проектов, и десять раз вводить логин и пароль не комильфо.
Спасибо.