Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 19.05.08 10:03
Оценка:
Добрый день,

Столкнулся с очень нехорошей проблемой, уже не знаю что делать.

Мне нужно в службе обращяться к базе данный Lotus через ODBC драйвер NotesSQL. Первым делом сделал тестовое десктоп приложение, которое практически сразу заработало. Создается коннекшн стринг, дальше сам коннекшн, получаю данные правильно.

Проблемы начались когда я начал заворачивать тот же самый код в веб сервис. Пришлось дать права на несколько папок группе IIS_WPG (как было написано в мануале самого дравера Лотуса), дать права на ветку реестра со списком установленных ODBC драйверов и т.д. Теперь нативных эксепшенов не вылетает, но драйвер так и не работает. Сам дравер не может подключиться к удаленному сереру. Пробовал запускать сервис от своего пользователя со всеми правами — то же самое.

Сделал вин сервис, перенес код туда, точно та же картина. При запуске от моего пользователя драйвер, запущенный сервисом, не может найти сервер в локалке.

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

Буду благодарен за любую помощь.

P.S. Сборка стронг нейм, подписанная. Должна быть фул траст.
Сравнивал Evidence АппДомена десктопа и службы, обе по умолчанию работают в зоне MyComputer, тобиш фул траст. Что еще можно посмотреть?
Re: Особенности прав десктоп приложения и служб
От: stump http://stump-workshop.blogspot.com/
Дата: 19.05.08 11:43
Оценка:
Здравствуйте, -DIS-, Вы писали:

Скорее всего это проблема драйвера Лотуса. Какой способ аутентификации он использует, не Kerberos случаем?
Понедельник начинается в субботу
Re[2]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 19.05.08 12:59
Оценка:
Здравствуйте, stump, Вы писали:

S>Скорее всего это проблема драйвера Лотуса. Какой способ аутентификации он использует, не Kerberos случаем?


Проблема именно в драйвере, он не может подключится к серверу. Пытаюсь раскопать могу ли я повлиять на условия в которых он запускается, чтоб он заработал. Из под десктопа работает, из под сервиса — нет.. Уже не знаю что еще можно сравнить из их жизненного цикла...

Драйвер мне самому жудко ненравиться, как и весь Лотус, но выбора у меня нет..

Насчет аутентификации точно не скажу, не нашел. Знаю, что у него все построено на .id файлах и паролях к ним. Чтоб залогиниться, нужно указать .id файл, логин и пароль.. Керберос это или нет не знаю..
Re: Особенности прав десктоп приложения и служб
От: HowardLovekraft  
Дата: 19.05.08 13:17
Оценка:
На стек можно глянуть?
Re[2]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 19.05.08 14:17
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>На стек можно глянуть?


Там нет ничего интересного.. Мне прилетает OdbcException с ошибкой, сгенерированной драйвером.. Драйвер там выдает собственную ошибку, как в случае если указываешь неверный сервер. Если б вылетало SecurityException или еще что-нить нативное, было бы намного проще..
Re: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 19.05.08 20:39
Оценка:
Последнее что сделал перед уходом с работы — сделал библиотеку (dll с кодом, вызывающим NotesSQL ODBC Driver), подписал ее и закинул в ГАК. Сделал 2х клиентов, которые ссылаются на эту гаковскую библиотеку и дергают ее метод. 2 клиента — винформс, и вин сервис. Настройки подключения все одинаковые, и в этом тесте вшити хард-кодом в библиотеку. Вин формс прога открывает подключение, а в сервисе опять-таки не работает...
Этим я свел различия кода к минимуму. Теперь вся разница заключается только в стартовых\базовых настройках вин формс приложения и приложения windows service.

В чем же эта разница? Как ее посмотреть?
Re[2]: Особенности прав десктоп приложения и служб
От: arkhivania  
Дата: 20.05.08 05:35
Оценка:
Здравствуйте, -DIS-, Вы писали:

DIS>Последнее что сделал перед уходом с работы — сделал библиотеку (dll с кодом, вызывающим NotesSQL ODBC Driver), подписал ее и закинул в ГАК. Сделал 2х клиентов, которые ссылаются на эту гаковскую библиотеку и дергают ее метод. 2 клиента — винформс, и вин сервис. Настройки подключения все одинаковые, и в этом тесте вшити хард-кодом в библиотеку. Вин формс прога открывает подключение, а в сервисе опять-таки не работает...

DIS>Этим я свел различия кода к минимуму. Теперь вся разница заключается только в стартовых\базовых настройках вин формс приложения и приложения windows service.

DIS>В чем же эта разница? Как ее посмотреть?


А сборка со строгим именем? И какая операционная система?
Re[3]: Особенности прав десктоп приложения и служб
От: arkhivania  
Дата: 20.05.08 05:37
Оценка:
Здравствуйте, arkhivania, Вы писали
A>А сборка со строгим именем? И какая операционная система?
А торможу, раз в гак даже запихивали. Может смысл есть почитать про AllowPartiallyTrustedCallerAttribute
Re[2]: Особенности прав десктоп приложения и служб
От: stump http://stump-workshop.blogspot.com/
Дата: 20.05.08 06:04
Оценка:
Здравствуйте, -DIS-, Вы писали:

DIS>В чем же эта разница? Как ее посмотреть?


Сравни контекст безопасности в исполняемых приложениях. Для этого посмотри во время выплнения значения System.Threading.Thread.CurrentPrincipal.Identity и его свойств (Name, IsAuthenticated, AuthenticationType), а также System.Security.Principal.WindowsIdentity.GetCurrent()
Понедельник начинается в субботу
Re[2]: Особенности прав десктоп приложения и служб
От: mrozov  
Дата: 20.05.08 08:16
Оценка:
Здравствуйте, -DIS-, Вы писали:

DIS>Этим я свел различия кода к минимуму. Теперь вся разница заключается только в стартовых\базовых настройках вин формс приложения и приложения windows service.


DIS>В чем же эта разница? Как ее посмотреть?


А не в профайле ли разница? Вообще, если сервису позволить работать с рабочим столом, что-нибудь меняется?

Также можно посмотреть, куда ваше приложение пытается обращаться, к каким файлам или веткам реестра.
Re[3]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 20.05.08 08:22
Оценка:
Здравствуйте, mrozov, Вы писали:

M>А не в профайле ли разница? Вообще, если сервису позволить работать с рабочим столом, что-нибудь меняется?

Пробовал при запуске от LocalSystem устанавливать галочку работы с рабочим столом, ничего не меняется. Запускаю от своего админского аккаунта, тоже без успеха.

M>Также можно посмотреть, куда ваше приложение пытается обращаться, к каким файлам или веткам реестра.

Файловую систему мониторил FileMon-ом, обращается к тем же файлам с тем же успехом. Реестр не мониторил, надо проверить.
Re[4]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 20.05.08 08:24
Оценка:
Здравствуйте, arkhivania, Вы писали:

A>Здравствуйте, arkhivania, Вы писали

A>>А сборка со строгим именем? И какая операционная система?
A>Может смысл есть почитать про AllowPartiallyTrustedCallerAttribute
Атрибут, к сожалению не помог.. Операционка Win2003 server enterprise SP2
Re[3]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 20.05.08 08:25
Оценка:
Здравствуйте, stump, Вы писали:

S>Здравствуйте, -DIS-, Вы писали:


DIS>>В чем же эта разница? Как ее посмотреть?


S>Сравни контекст безопасности в исполняемых приложениях. Для этого посмотри во время выплнения значения System.Threading.Thread.CurrentPrincipal.Identity и его свойств (Name, IsAuthenticated, AuthenticationType), а также System.Security.Principal.WindowsIdentity.GetCurrent()


Все параметры WindowsIdentity совпадают при вызовах вин сервиса и десктопа
Re[4]: Особенности прав десктоп приложения и служб
От: stump http://stump-workshop.blogspot.com/
Дата: 20.05.08 08:28
Оценка:
Здравствуйте, -DIS-, Вы писали:

DIS>Здравствуйте, stump, Вы писали:


S>>Здравствуйте, -DIS-, Вы писали:


DIS>>>В чем же эта разница? Как ее посмотреть?


S>>Сравни контекст безопасности в исполняемых приложениях. Для этого посмотри во время выплнения значения System.Threading.Thread.CurrentPrincipal.Identity и его свойств (Name, IsAuthenticated, AuthenticationType), а также System.Security.Principal.WindowsIdentity.GetCurrent()


DIS>Все параметры WindowsIdentity совпадают при вызовах вин сервиса и десктопа

И AuthenticationType тоже?
Понедельник начинается в субботу
Re[5]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 20.05.08 09:25
Оценка:
Здравствуйте, stump, Вы писали:

DIS>>Все параметры WindowsIdentity совпадают при вызовах вин сервиса и десктопа

S>И AuthenticationType тоже?
При запуске службы от моего пользователя — да, от LocalSystem нет
Re: Особенности прав десктоп приложения и служб
От: PepperPuh  
Дата: 20.05.08 11:51
Оценка:
Вот тут
Автор: Curufinwe
Дата: 06.02.08
обсуждалась проблема с IPC из под сервиса.
Там из-за logon type сервис (имеющий network logon type)некорректно работает с подгркжаемой dll, использующей named pipes (т.е. IPC)...

Может быть это чем-то поможет.
Re[2]: Особенности прав десктоп приложения и служб
От: -DIS-  
Дата: 22.05.08 10:17
Оценка:
Здравствуйте, PepperPuh, Вы писали:

PP>Вот тут обсуждалась проблема с IPC из под сервиса.

PP>Там из-за logon type сервис (имеющий network logon type)некорректно работает с подгркжаемой dll, использующей named pipes (т.е. IPC)...

PP>Может быть это чем-то поможет.


Спасибо за ответ.. К сожалению, не помогло..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.