У нас есть веб-приложение с отслеживанием состояния, которое поддерживает длительный сеанс работы с сервером для каждого пользователя (пока пользователь работает с системным сеансом), которое должно работать с Azure DevOps. Мы используем . NET клиентские библиотеки .
Мы сохраняем VssConnection в течение времени жизни сеанса. Мы создаем соединение следующим образом:
var vssOAuthAccessTokenCredential = new VisualStudio.Services.OAuth.VssOAuthAccessTokenCredential(accessToken);
var connection = new VssConnection(connectionUrl, vssOAuthAccessTokenCredential);
Проблема здесь в том, что токен доступа истекает через некоторое время, и я не вижу какого-либо класса соединения / учетных данных в SDK, который будет принимать некоторый обратный вызов что я могу передать refre sh token.
Я пытался реализовать свой собственный IVssCredentialPrompt, но когда я создаю новый VssConnection, передавая мою реализацию IVssCredentialPrompt и CredentialPromptType.PromptIfNeeded, я получаю
System.ArgumentException: опция подсказки недопустима, поскольку процесс не является интерактивным. Имя параметра: PromptType.
Я также не могу создать свою собственную реализацию FederatedCredential, поскольку для нее требуется экземпляр IssuedToken, конструктор которого является внутренним.
Какое рекомендуемое решение для этого случая?