Выход из сети. Отследить программно. КАК?

Обсуждение технических вопросов по продуктам Novell

Выход из сети. Отследить программно. КАК?

Сообщение Музалёв Николай » 07 дек 2006, 18:11

Уважаемые коллеги, подскажите в сл. вопросе:
на предприятии создается с нуля виндовая НоваяИнфоСистема (НиС). (Комплекс вин-приложений как надстройка над некоей базой. )
Работать начинает примерно так:
- сотрудник является пользователем NW-сети и имеет некоторые полномочия в НиС.
- при запуске стартового модуля НиС происходит считывание из eDIR информация о полномочиях этого конкретного пользователя NW-сети в НиС (простой польз., продвинутый, нач., аудитор, etc) и поднастройка конкретного рабочего места с предоставлением соотв прав доступа к данным НиС и соответсвующих программных модулей.
Т.е. на текущий момент Дерево хранит толькро минимальные сведения - ранг работника в паралельной ИнфоСистеме.

Отсюда сразу видна проблема:
- ВасяПупкин залогинился в NW-сеть и запускает НиС.
- стартовый модуль НиС определил, что это наш Вася, полез в Дерево и прочитал полномочия Нашего Васи ( допустим - начальник).
- Вася плодотворно использует НиС на благо. Предположим, до обеда.
- уходя на обед, Наш Вася отлогинивается от NW-сети., но не закрыл НиС. Ну, просто под пасьянсом его не увидел... бывает.
- и это вин-приложение НиС остается в памяти машины и доступно любому другому васе, причем с полномочиями начальника. А это недопустимо - система предполагается серьезная.
- кроме того, если на место НашегоВаси просто садиться и залогинивается в NW-сеть уже ДругойВася (с другими полномочиями в НиС, большими или меньшими) , то НиС-система должна это понять и принудительно закрыть забытую НашимВасей сессию.

Вопрос: каким образом мои программисты (ранее с NW дела не имевшие никакого) должны написать код, который отследит события "текущая NW-сессия закрыта" и/или "новая NW-сессия начата" что бы по этим событиям инициировать закрытие текущей сессии НиС ?
Примеры кода и ссылки на примеры кода приветствуются...

Спасибо.
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Re: Выход из сети. Отследить программно. КАК?

Сообщение Dimerson » 07 дек 2006, 18:54

Музалёв Николай писал(а):Уважаемые коллеги, подскажите в сл. вопросе:
на предприятии создается с нуля виндовая НоваяИнфоСистема (НиС). (Комплекс вин-приложений как надстройка над некоей базой. )
Работать начинает примерно так:
- сотрудник является пользователем NW-сети и имеет некоторые полномочия в НиС.
- при запуске стартового модуля НиС происходит считывание из eDIR информация о полномочиях этого конкретного пользователя NW-сети в НиС (простой польз., продвинутый, нач., аудитор, etc) и поднастройка конкретного рабочего места с предоставлением соотв прав доступа к данным НиС и соответсвующих программных модулей.
Т.е. на текущий момент Дерево хранит толькро минимальные сведения - ранг работника в паралельной ИнфоСистеме.

Отсюда сразу видна проблема:
- ВасяПупкин залогинился в NW-сеть и запускает НиС.
- стартовый модуль НиС определил, что это наш Вася, полез в Дерево и прочитал полномочия Нашего Васи ( допустим - начальник).
- Вася плодотворно использует НиС на благо. Предположим, до обеда.
- уходя на обед, Наш Вася отлогинивается от NW-сети., но не закрыл НиС. Ну, просто под пасьянсом его не увидел... бывает.
- и это вин-приложение НиС остается в памяти машины и доступно любому другому васе, причем с полномочиями начальника. А это недопустимо - система серьезная.
- кроме того, если на место Нашего Васи садиться и залогинивается НеНашВася с другими полномочиями в НиС(большими или меньшими,) , то система тоже должна закрыть забытую НашимВасей сессию.

Вопрос: каким образом мои программисты (ранее с NW дела не имевшие никакого) должны написать код, который отследит событие "текущая NW-сессия закрыта" и "новая NW-сессия начата" что бы по этим событиям инициировать закрытие текущей сессии НиС ?
Примеры кода и ссылки на примеры кода приветствуются...

Спасибо.


надо вызвать несколько хорошо документированных функций netware api.

типа получить номер DefaultConnection -> GetDefConnInfo (в частности connectionType = 0,1,2 etc (Вindery,NDS,или NOT CONNECTED патология типа PersonalNetware не рассматриваетсо :), если NDS то MapConnIdToName (это уже вызов NDS для получения FDN не зависимо от context или существует Bindery Context на сервере или нет)).

В общем детали по вызовам могу глянуть.

В свое время такой путь был признан более верным чем тупой вызов DSWhoAmi().

в каких местах по коду делать проверку на коннект - вам виднее.
Аватара пользователя
Dimerson
 
Сообщения: 2966
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70

Сообщение Музалёв Николай » 07 дек 2006, 19:01

В общем детали по вызовам могу глянуть

Коллега! Буду очень благодарен: вы т.о. сократите блуждание по описаниям АПИ...
А моего программера на вас натравить можно?
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Сообщение Владимир Горяев » 07 дек 2006, 19:15

А если начальник к примеру залогинен на др. машине, или еще как в ето время? А нис тогда проверит - ага залогинен и... пустит. Ладно тогда добавляем условия по адресу а потом еще покак-нибудь и пр. и пр.
А не проще проверять наличае доступа к \\server\home\homedir\blablabla ?
Бардак автоматизировать невозможно!!!
_________________
Аватара пользователя
Владимир Горяев
 
Сообщения: 3473
Зарегистрирован: 05 июн 2002, 13:37
Откуда: Смоленск

Сообщение Dimerson » 07 дек 2006, 19:25

Владимир Горяев писал(а):А если начальник к примеру залогинен на др. машине, или еще как в ето время? А нис тогда проверит - ага залогинен и... пустит. Ладно тогда добавляем условия по адресу а потом еще покак-нибудь и пр. и пр.
А не проще проверять наличае доступа к \\server\home\homedir\blablabla ?


хехе

коннект в дерево может без доступа к файловым ресурсам .
просто коннект в дерево. и телемаркет.
Аватара пользователя
Dimerson
 
Сообщения: 2966
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70

Сообщение Константин Ошмян » 07 дек 2006, 20:14

Николай,

что-то уже торможу немного под конец рабочего дня... :(

Что значит
Музалёв Николай писал(а):- уходя на обед, Наш Вася отлогинивается от NW-сети., но не закрыл НиС. Ну, просто под пасьянсом его не увидел... бывает.
- и это вин-приложение НиС остается в памяти машины и доступно любому другому васе, причем с полномочиями начальника. А это недопустимо - система предполагается серьезная.
:?:
Если система предполагается серьезная, то единственным способом выхода из сети должен быть Logout/Log off/Close all programs and logon as another user, допустимый вариант - Shutdown/Restart/т.п. В остальных случаях, когда вин-приложение НиС остается в памяти машины и доступно любому другому, - это именно следствие того, что пользователь покинул рабочее место, не завершив и не заблокировав свою сессию (т.е. сеанс работы). И совершенно не важно, что у него при этом было открыто на экране (и было ли открыто вообще).

Или я чего-то не понимаю?
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Сообщение Мещеряков Андрей » 07 дек 2006, 22:10

По моему, решение лежит на поверхности: надо зачитывать в NDS параметры юзвера не один раз, а перед выполнением любой операции... И Франция будет спасена!
Аватара пользователя
Мещеряков Андрей
 
Сообщения: 1999
Зарегистрирован: 19 сен 2002, 14:55
Откуда: lipetsk

К примеру в проге по таймеру каждые N минут проверять,

Сообщение Boris Morozov » 08 дек 2006, 00:41

есть ли логин в дерево. И закрывать. Но это примитивная заглушка только от одной ситуации.
А вообще правильным решением, как и сказал Андрей, будет проверка на разрешение непосредственно перед выполнением конкретной операции, если все так серьезно. Пока Вася в логине и в вашей проге, его начальник может решить, что ему надо обрезать права. А вы никак на это не отреагируете. Все эти заглушки при старте вашей системы не спасут. Следить за правами надо постоянно.
Boris Morozov
 
Сообщения: 1333
Зарегистрирован: 05 июн 2002, 22:24
Откуда: Минск

Сообщение Dimerson » 08 дек 2006, 14:43

Мещеряков Андрей писал(а):По моему, решение лежит на поверхности: надо зачитывать в NDS параметры юзвера не один раз, а перед выполнением любой операции... И Франция будет спасена!


считываит адрес юзверя из НДС и сравнивать его с текущим это конечно да ... именно так реализован SSO в Astaro, и глюкает иногда - то есть по логауту не зачищает записи. Луще таки дергать коннект на самой станции - ту все всегда соответсвует действительности.
Аватара пользователя
Dimerson
 
Сообщения: 2966
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70

Сообщение Музалёв Николай » 08 дек 2006, 15:27

2 Константин Ошмян
это именно следствие того, что пользователь покинул рабочее место, не завершив и не заблокировав свою сессию... Или я чего-то не понимаю?

Да, вы правильно понимаете: предполагается именно разгильдяй и надо бы блокировать (по мере сил и способностей) это его разгильдяйство.
От сети мы их вроде научили отлогиниваться - в сети, в "доме" , у них ведь лежит своя информация, а в системе - будет лежать наша. Разницу чуете? В смысле - разницу в отношении к делу?

Коллеги!
Всем - огромное человеческое СПАСИБО! Решение коллеги Андрея принимается с благодарностью. ( наверное, у самих нас "глаз замылился"... СлонаТо и НеПриетили)
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

cron