|
Определить пользователя в WEB клиенте | ☑ | ||
---|---|---|---|---|
0
sound
13.11.14
✎
15:30
|
Как определить имя пользователя домена, от имени которого был запущен web-клиент для текущей сессии, видимо без использования COM?
|
|||
1
sound
13.11.14
✎
15:32
|
вот такая штука проходит в тонком клиенте:
&НаКлиенте Функция ПолучитьЗначениеПеременнойОкружения(Имя) Экспорт Попытка Ctrl = Новый COMObject("MSScriptControl.ScriptControl"); Ctrl.Language = "vbscript"; Ctrl.AddCode(" |Function SpecialFolders(Name) |Set Shell = CreateObject(""Wscript.Shell"") |SpecialFolders = Shell.ExpandEnvironmentStrings(Name) |End Function"); ИмяПапки = Ctrl.Run("SpecialFolders", "%" + СокрЛП(Имя) + "%"); Исключение ИмяПапки = Неопределено; Сообщить(ОписаниеОшибки()); КонецПопытки; Возврат ИмяПапки; КонецФункции // ПолучитьЗначениеПеременнойОкружения() &НаКлиенте Процедура ПриОткрытии(Отказ) Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда Объект.Автор = ПолучитьЗначениеПеременнойОкружения("USERNAME"); КонецЕсли; КонецПроцедуры |
|||
2
sound
13.11.14
✎
15:32
|
А вот в Веб клиенте ругается :(
|
|||
3
H A D G E H O G s
13.11.14
✎
15:33
|
Новый COMObject доступен только в IE
|
|||
4
sound
13.11.14
✎
15:34
|
(3) Не, надо без привязки к IE.
|
|||
5
sound
13.11.14
✎
15:41
|
Чото тишина
|
|||
6
H A D G E H O G s
13.11.14
✎
15:46
|
Выполнить команду
set username >c:\username.txt и прочитать файл. Не знаю, покатит ли в веп-клиенте, но должно |
|||
7
sound
13.11.14
✎
15:48
|
(6) Спасибо за ответ, о существовании SET знаю, но имхо как то проще должно быть чем файл расколупывать
|
|||
8
sound
13.11.14
✎
15:55
|
Блин засада (
|
|||
9
Лефмихалыч
13.11.14
✎
16:28
|
Если авторизация виндовая, то можно через
ПользователиИнформационнойБазы.ТекущийПользователь().ПользовательОС |
|||
10
sound
13.11.14
✎
16:30
|
(9) Не, в том то и дело что в базе вообще нет пользователей
|
|||
11
sound
13.11.14
✎
16:32
|
И такая штука проходит в тонком клиенте:
wshShell = Новый COMОбъект("WScript.Shell"); strUserName = wshShell.ExpandEnvironmentStrings("%USERNAME%"); Сообщить(strUserName); А вот в веб не хочет ( |
|||
12
Лефмихалыч
13.11.14
✎
16:39
|
(10) чо-то я не понимаю тогда, чего ты хочешь:
>в дазе нет пользвоателей >хочу знать, какой пользователь в базе одно из этих условий надо исключить, иначе задача решения не имеет по причинам, на которые ты уже наступил выше |
|||
13
H A D G E H O G s
13.11.14
✎
16:45
|
(12) Имеет.
|
|||
14
Лефмихалыч
13.11.14
✎
16:48
|
(13) да затрахаешься его иметь, это решение, - браузеров, как собак на помойке, кроме того ОС может быть ЛЮБОЙ.
Если нет авторизации, значит все клиенты одинаковы для системы, а значит нефиг пытаться их идентифицировать. Для идентификации клиентов есть авторизация, а все велосипеды - нах. |
|||
15
H A D G E H O G s
13.11.14
✎
16:50
|
(14) Смотрю я на вас и фигею.
Вы зациклены на универсальности, на которую надо забить. 95% имеют винду и браузер из "большой тройки" (IE, FF, GH), живут и не жужжат. 1С, кстати, разрешила ComОбъект в ВебКлиенте (который только для IE) и не парится. |
|||
16
Лефмихалыч
13.11.14
✎
16:54
|
(15) это я смотрю на вас и фигею. Есть стандартный, хороший, красивый и годный маханизм, который будет работать ВЕЗДЕ, зачем вместо него из*бываться и использовать какие-то гнилые костыли? Чтобы потом когда-нибудь рассказывать клиенту, что на его какой-нить магбуг не рассчитывали?..
|
|||
17
sound
14.11.14
✎
09:01
|
(15),(16) Товарисчи не ссорьтесь ) Никаких клиентов нету, это чисто своя хотелка. Понятно что если это веб клиент, то и ОС может быть любой и браузер и все такое и домены и рабочие группы и еще хрен знает что. Но в моем конкретном случае у всех винда (минимум ХР), все заходят под своими доменными учетками, но вот с браузерами конечно не понятно, есть и эксплореры и хромы наверно. И вот при таких раскладах задача сводится к получению на клиенте строки вида "Domain\Login". Вопрос в том разрешима ли она. Ком объекты как то не канают, может я просто их готовить не умею ). Есть мыслишки?
|
|||
18
sound
14.11.14
✎
09:30
|
Чо у всех пятница что-ли уже блин? )
|
|||
19
sound
14.11.14
✎
10:49
|
Неужели задача не имеет решения?
|
|||
20
sound
14.11.14
✎
11:47
|
ну вот даже если начать извращаться:
#Если ВебКлиент Тогда Если Не ПодключитьРасширениеРаботыСФайлами() Тогда УстановитьРасширениеРаботыСФайлами(); ПодключитьРасширениеРаботыСФайлами(); КонецЕсли; #КонецЕсли Врем = ПолучитьИмяВременногоФайла("txt"); КомандаСистемы("set > " + Врем, КаталогВременныхФайлов()); Текст = Новый ТекстовыйДокумент; Текст.Прочитать(Врем); ВсегоСтрок = Текст.КоличествоСтрок(); Для Н = 1 По ВсегоСтрок Цикл Стр = Текст.ПолучитьСтроку(Н); Если Найти(ВРег(Стр), "USERNAME=") >0 Тогда Логин = Прав(Стр, СтрДлина(Стр) - Найти(Стр, "=")); Прервать; КонецЕсли; КонецЦикла; УдалитьФайлы(Врем); Сообщить(Логин); То 1 хрен всплывают ошибки, связанные с безопасностью браузеров, хрен его знает у кого там что можно в них какие настройки менять |
|||
21
sound
14.11.14
✎
12:08
|
Вот прям мой случай http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=615428
|
|||
22
sound
14.11.14
✎
12:29
|
Я тут сам с собой пообщаюсь, ладно? :)
|
|||
23
ChiginAV
14.11.14
✎
12:33
|
В журнале регистрации при входе есть данные о пользователе ОС. Может оттуда как-то можно получить
|
|||
24
sound
14.11.14
✎
12:38
|
(23) К сожалению там нету ничего, там только пишется ImplAppID, Веб-клиент и т.д. и все, нечего информативного
|
|||
25
ChiginAV
14.11.14
✎
12:46
|
(24) Возможно потому, что не заведено ни одного пользователя.
У меня при входе пользователя с аутентификацией 1с, появляется запись в ЖР об ошибке аутентификации с указанием пользователя ОС, а потом записи об успешной аутентификации пользователя 1с. ЖР настроен регистрировать все, кроме примечаний. Может завести единого пользователя для всех без пароля? |
|||
26
sound
14.11.14
✎
12:50
|
(25) Спасибо за идею, но не получилось
|
|||
27
sound
14.11.14
✎
15:01
|
Пичалька #zaplakal
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |