Я думаю разместить одну и ту же службу для нескольких клиентов в соответствующих виртуальных каталогах в IIS.так что в основном на диске будет один сервис, на который будут ссылаться несколько виртуальных каталогов, размещенных в IIS, это даст мне что-то вроде этого:
http://myservice/client1
http://myservice/client2
... и т. Д.
Я сделаю договор на обслуживание обобщенным.это даст мне один контракт для всех клиентов.
Базовая база данных будет отличаться для всех клиентов (схема одна и та же), я подключусь к соответствующей базе данных клиентов, выяснив из URL-адреса, используемого для доступа к службе, если это было http://myservice/client1 я подключусь к dbClient1, если это было http://myservice/client2 я подключусь к dbClient2 ... и т. д.
ВЫЗОВ:
вышеуказанное решит большинство проблем, кроме процесса аутентификации (я использую ASP Membership, формы аутентификации).мой сервис находится на привязке https basicHttp, поэтому у меня нет сеансов.
Как указать, какое имя приложения использовать для аутентификации пользователя.(все клиенты имеют отдельные имена приложений, хранящиеся в ОДНОЙ базе данных членства ASP). Если я перехожу на Global.asax в Application_AuthenticateRequest, это работает, так как я могу получить URL-адрес в то время и указать имя приложения, которое будет использоваться при аутентификации,но это также меняет имя приложения для других абонентов ... что совсем нехорошо ....
Так что все, что мне нужно, это какой-то способ сообщить моей службе, что искать это имя пользователя / пароль в этом приложениив этой базе данных.(база данных будет одинаковой для всех клиентов в случае аутентификации).Но я хочу изменить имя приложения для этого конкретного сеанса / экземпляра ... (не уверен, что эти два доступны в привязке https basicHttp)
, если я смогу решить этот вопрос, у меня все будет хорошо ....
пожалуйста, помогите ... спасибо