|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
Дано: Есть WCF сервис (манина1), есть ORACLE (машина2), ну и клиент на третьей машине Машины в одном домене. WFC хостится в IIS (на WS2008) Привязка netTcpBinding. На методе стоит [OperationBehavior(Impersonation = ImpersonationOption.Required)] на клиенте client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation; Сервер защищен сертификатом, а клиент хочу чтобы проходил аутентификацию Windows. При некоторых настройках олицетворение даже срабатывает, т.е. в метода сервиса в WindowsIdentity.GetCurrent().Name нужный пользователь, но коннект к бд на другом серваке не происходит (ошибка - неверный логин / пароль), строка подключения правильная, т.к. спецом консольную прогу сделал для проверки, запускаю на машине1 (где wcf), коннект работает. Почитал кучу топиков на эту тему, нигде не нашел решения 1. поставил для NETWORK_SERVICE (под ним работает сервис при привязке net.tcp) привелерию - "Act as part of the operation system". Не помогло 2. Пробую client.ClientCredentials.Windows.AllowNtlm = false получаю ошибку Код: plaintext 1. 2. 3. 4. 5. 6.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
на клиенте Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 10:41 |
|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
При копировании конфигов ошибся запускается с TransportWithMessageCredential, олицентворяется но не логинется к БД Какие еще шаманства нужно сделать. Нифига нету нормальной доки по WCF на MSDN :(, все примеры на локалхостах это вообще шедевры. Наверняка кто то сталкивался с проблемой. Помогите разобраться. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 10:48 |
|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
barrabas, так, какая ошибка то? покажи ее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 12:21 |
|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
AlexeiKbarrabas, так, какая ошибка то? покажи ее. Одна ошибка (когда олицетворение происходит), как я описал выше, при подключении к БД, "неверный юзер и пароль" (он верный, тот же код подключения выполняется на серверной машине из обычного приложения, спецом проверил). Вторая (когда пытаюсь настраивать (отключить например client.ClientCredentials.Windows.AllowNtlm = false) ОшибкаКлиент не может определить основное имя службы на основании имени в конечном адресе "net.tcp://msk-wrq-02.card.magystral.local:809/PVSWebServiceGS/Service.svc" для SspiNegotiation/Kerberos. Имя, соответствующее целевому адресу, должно быть представлено в виде имени участника-пользователя (пример: acmedomain\alice) или основного имени службы (пример: host/bobs-machine). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 12:48 |
|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
Еще одна ошибка. При использовании веб-криента (Web server тоже IIS и тоже на другой машине), не получается пробросить пользователя до WCF В отладчике видно, что пользователь нужный (тот что логинелся в браузере по виндовой аутентификации), но при Open канала к WСF получаю "Подлинность вызывающего пользователя не была проверена службой." Настройки клиента такиеже как в виндовой проге, еще в иис включено <system.web> <authentication mode="Windows" /> <identity impersonate="true"/> </system.web> Если отключить impersonate=false то сервис вызывается но отправляет, не нужного пользователя, а креденшин машины на котором ИИС хостится Как вообще всё это настроить вместе :(??? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 14:45 |
|
WCF ORACLE олицетворение в домене
|
|||
---|---|---|---|
#18+
barrabasЕще одна ошибка. При использовании веб-криента (Web server тоже IIS и тоже на другой машине), не получается пробросить пользователя до WCF В отладчике видно, что пользователь нужный (тот что логинелся в браузере по виндовой аутентификации), но при Open канала к WСF получаю "Подлинность вызывающего пользователя не была проверена службой." Настройки клиента такиеже как в виндовой проге, еще в иис включено <system.web> <authentication mode="Windows" /> <identity impersonate="true"/> </system.web> Если отключить impersonate=false то сервис вызывается но отправляет, не нужного пользователя, а креденшин машины на котором ИИС хостится Как вообще всё это настроить вместе :(??? К тому же WindowsIdentity.GetCurrent().ImpersonationLevel равен TokenImpersonationLevel.Impersonation, а мне нужне Delegation чтобы пробросить его на другую машину в WCF, а там под ним нужно законектится к оракле которая тоже на другой машине Где настраивается в asp с каким уровнем олицетворения приходит пользователь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 16:18 |
|
|
start [/forum/topic.php?fid=19&gotonew=1&tid=1397295]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 510ms |
0 / 0 |