Идентификация удаленных пользователей

Тема в разделе "Lotus - Программирование", создана пользователем vvlad, 18 окт 2009.

  1. vvlad

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Hi All!

    Есть процедура в БД, которая получает данные из локальных сетевых ресурсов от имени работающего пользователя.
    Соответственно эта процедура не работает, когда пользователь обращается к БД удаленно.

    Возможно ли как-то программно идентифицировать удаленность текущего пользователя?


    Платформа R8,5, доступ в БД только из Notes.

    В голову лезут варианты:
    1. парсить вывод ipconfig - результат не гарантирован, возможны совпадения;
    2. сделать персональную настойку в профильном документе "работаю из локальной сети" или "работаю удаленно" - в идеале хотелось разобраться с этим вопросом без участия пользователя.

    Может кто сталкивался? Подскажите куда копать?

    Спасибо!
     
  2. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Как полчаете? И что вы получаете?

    Было бы не плохо увидеть кусок кода.

    Я так понимаю из локейшена?
     
  3. vvlad

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    В принципе не важно, у меня пользователи обращаются к локальному файловому серверу по ссылкам, полученным из БД
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а чего ты хочешь этим достичь?.. в любом случае, если сетевой ресурс не доступен, то будет ошибка обращения.
    показать юзер френдли сообщение? тогда пытаться отлавливать ошибку (on error), если система вернет ее в поток нотеса.
     
  5. vvlad

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Хочу для локальных запускать один алгоритм, а для удаленных другой....
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну, пробовать первый алгоритм, если ошибка, то пробовать второй
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    вызов идет удалённо, для сервера домины, а потому он не знает - как клиент вошёл
    инфу тащим средствами ОС...
     
  8. allex

    allex Гость

    Проверить принадлежность пользователя к вашему серверу (хотя пользователь может и принадлежать...), если не свой, то по другому алгоритму

    А если смотреть в локальный документ подключения, брать от туда интернет-имя и сравнивать его с IP/dns-nаmae локального компьютера.
    Но было бы лучше , если бы записи имен IP/dns-nаmae серверов были одного формата (либо IP либо dns-name) - для простоты вычисления
     
  9. vvlad

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Мне кажется не вариант - в подключении может быть что угодно, как IP так и DNS имя, подключений можт быть несколько....


    А вот преобразовать имя сервера в IP адрес - это мысль.

    Вот только как это лучше сделать - есть ли в лотусе средства для этого, или придется использовать nslookup ?
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    этим занимается операционная система
     
  11. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    ну как по мне если это винда
    можно в лотусе запустить ipconfig -> rez.txt
    полученный файл обработать скриптом и четко понять удаленный это или свой, например на входе в какую нить БД ;)
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ап стену, адназначна )))
    есть апишки, которые позволяют получить все, что требуется.
    еще можно поковырять яву - будет даже безопасный код.
     
  13. allex

    allex Гость

    Абцалютно согласен. Кому-то разрешено ходить строго по струнке, а кому-то куда и с кем попало.

    Можно использовать в профильном доке (без доп. ключей) сеть или список сетей, все что не входит в список - твое
     
  14. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Вы сформулируйте - что есть локальность в вашем понимании.
    Локальная сеть, 2 подсети. Шлюз с 2-мя интерфейсами 192.168.10.1/24 , 192.168.11.1/24
    Cервер 192.168.10.2, клиент 192.168.11.2.
    В такой конфигурации - клиент локальный или удаленный? По мне - так локальней некуда, хотя подсети разные...
    ИМХО, в вашей задаче локальность = доступность сетевого ресурса. Тут парсинг ipconfig/ifconfig - ничего не даст.
    Почему не пойти по пути, предложенному Akupaka: проверить доступность ресурса( напр. URLConnection.connect ) и в случае отлупа перейти к плану Б?
     
  15. vvlad

    vvlad Well-Known Member

    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    А можно в этом месте поподробней?
    Просто раньше не приходилось работать с api...




    Из локалки server.ru (Domino) резолвится в 192.168.1.1.
    из вне в реальный адрес.

    Соответственно исходя из этого и принимать решение.
     
  16. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
Загрузка...

Поделиться этой страницей