Member 8278404 Ответов: 1

Передайте переменную javascript в VB.NET субмарина


Мне нужно передать javaID от site. master к site.master.vb. Затем он станет идентификатором внутри Page_Load, так что я смогу передать ему также pullLdapData.
Я получаю правильное значение для javaID, я просто не могу передать его субмарине, чтобы я мог его использовать.

сайте.мастер:

функция getUser() {
var wshell = new ActiveXObject("WScript.Ракушка");
var javaID = wshell.ExpandEnvironmentStrings ("%USERNAME%");

};

сайте.мастер.ВБ:
Защищенные суб в(отправителя как объект, а равно EventArgs) обрабатывает меня.Загрузить
Dim id, имя пользователя
id = javaID
pullLdapData(id, имя пользователя)
Конец Подводной Лодки

Что я уже пробовал:

Я пытался исследовать это и не могу получить ни одного из предложений, которые я нашел в интернете, чтобы работать.

1 Ответов

Рейтинг:
1

Richard Deeming

Объекты ActiveX будут работать только в Internet Explorer на Windows.

Кроме того, WScript.Shell Объект ActiveX будет работать только в том случае, если пользователь изменил свои настройки, чтобы разрешить сценарии объектов ActiveX, не помеченных как "безопасные для сценариев".

И, наконец, вы явно не понимаете, как ASP.NET работает. То Page_Load проходит событие на сервере, прежде чем какой-либо HTML или Javascript будет отправлен клиенту. Javascript не запускается до тех пор, пока серверный код не будет завершен и визуализированный HTML-код не будет возвращен клиенту.


Вам нужно забыть о Javascript и включить его проверка подлинности Windows[^Затем пользователи смогут войти на ваш сайт, используя свои учетные данные в вашей сети, и вы сможете использовать User.Identity.Name свойство для получения их имени пользователя.

Если пользователи находятся в той же сети, что и ваш сервер, они даже могут добавить ваш сайт в зону "локальной интрасети" IE, и IE и Chrome автоматически пройдут аутентификацию на вашем сайте, не требуя от пользователя повторного ввода своих учетных данных. (для Firefox, вам нужно изменить расширенную настройку[^] чтобы получить такое поведение.)


Member 8278404

Ну спасибо Ричард,
Вы явно не понимаете утверждения о том, что у меня есть правильное значение в моем JavaScript.
Page_Load был ошибкой, когда я его опубликовал, и я уже исправил это.
Но, спасибо за предложение ваших мыслей, я не могу использовать аутентификацию Windows для этого.

Richard Deeming

Не имеет значения, есть ли у вас правильное значение в вашем Javascript; этот скрипт запущен ПОСЛЕ весь серверный код был выполнен.

Вы не могу используйте это значение переменной Javascript из вашего серверного кода до того, как Javascript будет возвращен клиенту и выполнен.

То только вы можете использовать значение переменной Javascript из кода на стороне сервера, чтобы сделать второй запрос, передавая это значение через файл cookie, строку запроса или сообщение формы. Переменная будет доступна только при втором запросе; вы не сможете использовать ее при первом запросе.

И если вы не можете использовать аутентификацию Windows, это означает, что ваш сайт будет использоваться пользователями за пределами вашей сети. В этом случае использование небезопасного элемента управления ActiveX-отличный способ убедиться, что никто не посещает ваш сайт дважды!

Member 8278404

Ну вот, это был бы правильный ответ, Спасибо.