Сессий 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-совместимости для поведения службы.