На сервере для прозрачной авторизации (с помощью учетной записи Windows) используется отдельный порт для подключения клиента. Если в серверном конфиге блок для подключения уже прописан, то можете переходить к настройке клиентов, если же блок для подключения клиентов с Windows-авторизацией отсутствует, то его необходимо добавить и перезапустить службу для применения изменений.
<configuration> <system.runtime.remoting> <channels> <-- блок для подключения клиентов с Windows-авторизацией --> <channel ref="tcp" name="tcp0" port="32750" secure="true"> <serverProviders> <provider type="GEst.Remoting.SspiServerSinkProvider, VCLib.Server" compression="false" notCompressedRequestLength="1024" /> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> <-- конец блок для подключения клиентов с Windows-авторизацией --> <-- блок для подключения клиентов с обычной авторизацией по логину и паролю --> <channel ref="tcp" name="tcp1" port="32751"> <serverProviders> <provider type="GEst.Remoting.BasicServerSinkProvider, VCLib.Server" encryption="false" compression="false" notCompressedRequestLength="1024" /> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> <-- конец блок для подключения клиентов с обычной авторизацией по логину и паролю --> </channels> </application> </system.runtime.remoting>
В нашем текущем случае порт для подключения клиентов с Windows-авторизацией — 32750.
Следующие изменения необходимо произвести в клиентском конфиге (AKUZ.UserArm.exe.config):
Найдите следующий фрагмент:
<system.runtime.remoting> <channelSinkProviders> <clientProviders> <provider id="basic" type="GEst.Remoting.BasicClientSinkProvider, VCLib.Client" notCompressedRequestLength="1024" /> <provider id="sspi" type="GEst.Remoting.SspiClientSinkProvider, VCLib.Client" notCompressedRequestLength="1024" /> </clientProviders> </channelSinkProviders> <application> <channels> <channel ref="tcp" port="0"> <clientProviders> <formatter ref="binary" /> <provider ref="basic" /> </clientProviders> </channel> </channels> </application> </system.runtime.remoting>
закомментируйте или удалите в нём:
<channel ref="tcp" port="0"> <clientProviders> <formatter ref="binary" /> <provider ref="basic" /> </clientProviders> </channel>
и вместо этого сегмента вставьте:
<channel ref="tcp" port="0" secure="true"> <clientProviders> <formatter ref="binary" /> <provider ref="sspi" /> </clientProviders> </channel>
Также, нужно изменить порт для подключения к серверу:
<GEst.Common> <HostAddress value="tcp://{0}:32751/ServerObject" /> <DefaultCulture value="ru-RU" /> </GEst.Common>
где вместо 32751 нужно прописать тот порт, который указан в конфиге клиента, в блоке для подключения клиентов с Windows-авторизацией, в нашем случае это 32750.
Добавление пользователей в самой программе выглядит следующим образом:
Внимание! Не забудьте, что для работоспособности этого механизма не только клиенты должны быть в домене, но и сервер.