Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Имперсонификация при подключении к SQL Server / 2 сообщений из 2, страница 1 из 1
29.04.2010, 15:23
    #36605476
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имперсонификация при подключении к SQL Server
Перед созданием SqlConnection в шарпе мне надо переключить контекст
Использую АПИ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
                bool returnValue = LogonUser(strUsername, strDomain, strPassword,
                    LOGON32_LOGON_NEW_CREDENTIALS,
                    LOGON32_PROVIDER_DEFAULT, ref tokenHandle);
                bool retVal = DuplicateToken(tokenHandle, SecurityImpersonation, ref dupeTokenHandle);
                if (false == retVal)
                {
                    errCode = Marshal.GetLastWin32Error();
                    CloseHandle(tokenHandle);
                    Console.WriteLine("Exception in token duplication.");
                    return errCode;
                }
                WindowsIdentity newId = new WindowsIdentity(tokenHandle);
                impersonatedUser = newId.Impersonate();

работает как надо, с одной оговоркой:

если приложение и SQL Server запущены на разных компьютерах - все работает.
Если же локально - то коннект с сервером устанавливается от имени юзера, заупстившего приложение.

Как можно обойти?
...
Рейтинг: 0 / 0
29.04.2010, 18:50
    #36606039
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имперсонификация при подключении к SQL Server
Может для начала стоит проверить returnValue от LogonUser? а потом поотключать все протоколы кроме TCP/IP
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Имперсонификация при подключении к SQL Server / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]