В приложении ASP.NET MVC с Windows authentication есть база данных с таблицей пользователей. В таблице есть поле Name, в котором хранится доменное имя пользователя.
Id пользователя в Session_OnStart пишется в сессию, чтобы при каждом запросе не обращаться за ним к БД.
Подскажите новичку, как можно лучше реализовать получение идентификатора пользователя в web сервисе(stateless)?
Вижу три варианта:
1) Каждый раз считывать его из БД.
2) Передавать его c клиента(что видимо в корне не верно)
3) В сервисе использовать сессию основного приложения. Нарушается принцип stateless сервиса?
Опыта совсем нет в этой области, подскажите возможные варианты решения.
Спасибо.
Добавил: сейчас Id просто кэшируется на некоторое время, впрочем, как и другие данные, которые редко изменяются или часто требуются. Нет ли тут нарушения stateless?