Сессий WCF или передавать имя пользователя/пароль за звонок?

Для службы WCF типа предприятия, где потенциально 10 тыс. тысяч клиентов будут аутентифицировать и отправлять данные на центральные серверы, что такое "лучшая" практика, когда речь идет о сеансах или аутентификации?

  • поддерживает ли WCF сеанс, если да, должен ли я его использовать? или я просто передаю имя пользователя/пароль на основе каждого вызова?

Ответы

Ответ 1

Как упоминалось blowdart, сеансы WCF не совпадают с сеансами ASP.NET. Вы можете прочитать их здесь: http://msdn.microsoft.com/en-us/library/ms733040.aspx. Прежде чем перевести свою собственную безопасность, вы захотите ознакомиться с тем, что WCF предоставляет вам из коробки: http://msdn.microsoft.com/en-us/library/ms734736.aspx, Они могут приблизиться к вашей цели, не написав много кода. В частности, проверьте Как создать безопасный сеанс. С помощью безопасных сеансов учетные данные кэша клиента и сервера, поэтому вам не нужно полностью аутентифицироваться с каждым запросом. По умолчанию вы потеряете безопасный сеанс, если веб-сервер переработает. Если вы хотите безопасный сеанс, который длится через переработку, вы захотите посмотреть Как создать токен контекста безопасности для безопасного сеанса.

Ответ 2

WCF поддерживает сеансы да; но они не, как сеансы ASP.NET. Сеансы для доставки сообщений по порядку (и других бит и бобов), они не существуют для добавления общего хранилища между вызовами.

Для аутентифицированных вызовов службы вы должны каждый раз отправлять свои данные аутентификации; безопасность применяется для каждого сообщения.

Ответ 3

Если вы размещаете службу в IIS, вы все равно можете использовать сеанс из ASP.NET путем включения aspnet-совместимости для поведения службы.