2015-01-22 1 views
1

У меня есть книга Excel, которая взаимодействует с веб-сервисом, имеющим аутентификацию. В первый раз, когда я делаю запрос webservice с использованием VBA с XMLHTTP, я должен ввести свой идентификатор пользователя и пароль во всплывающем окне из webservice. Excel помнит идентификатор пользователя и пароль для каждого последующего запроса xml, который я составляю, пока не закрою приложение Excel. Инструмент проверки подлинности веб-службы REST не имеет статуса, поэтому я не поддерживаю соединение. Мне нужно зафиксировать введенный пользователем идентификатор пользователя, чтобы использовать его в URL-адресе webservices для запроса GET. Есть ли способ захватить пользовательский идентификатор пользователя из Excel с помощью VBA, чтобы у меня не было запроса пользователю дважды для получения той же информации?Как я могу получить скрытые свойства в Excel, которые передаются с запросами XMLHTTP, такими как userid?

Katz, Благодарим за отзыв. Я знаком с этими функциями. Мой сценарий отличается тем, что я взаимодействую с внешним безопасным веб-сервисом, для которого требуется другой идентификатор пользователя, чем мой домен Windows. В моем случае webservice не имеет статуса и каждый раз, когда я его вызываю, для пользователя требуется уникальный идентификатор пользователя/пароль. При отправке запросов на этот веб-сервис через Excel с помощью VBA Excel каким-то образом запоминает идентификатор пользователя и пароль, и пока я не закрываю экземпляр Excel, мне не нужно вводить идентификатор пользователя/пароль в интерактивном режиме. Мне нужно иметь возможность извлекать только идентификатор пользователя, откуда когда-либо Excel запрашивает эту информацию, чтобы я мог поместить ее в запрос GET, поскольку идентификатор пользователя можно использовать в запросе GET в качестве критериев фильтрации для ответа от веб-службы.

Этот идентификатор пользователя должен храниться где-то в режиме excel или в среде системы, который будет использоваться повторно, когда последующие запросы GET отправляются на этот веб-сервис, чтобы подавить окно входа в систему после первого запроса. Любая помощь будет оценена по достоинству.

ответ

0

Для локального файла, который вы можете прочитать имя_компьютер и имя пользователя с этим кодом:

Set WSHnet = CreateObject("WScript.Network") 
    UserName = WSHnet.UserName 
    UserDomain = WSHnet.UserDomain 
    Set objUser = GetObject("WinNT://" & UserDomain & "/" & UserName & ",user") 
    userfullname = objUser.FullName 
Workbook.Sheets("Sheet1").Cells(1, 1).Value = Environ("COMPUTERNAME") & ", " & userfullname 

может быть, это работает для вас также в вашем интернете-файл

Смежные вопросы