Управление сессиями WCF - PullRequest
3 голосов
/ 15 февраля 2011

Я новичок в WCF и пытаюсь достичь нескольких вещей с точки зрения управления сессиями:

  1. Я хотел бы получить событие на сервере при открытии / создании нового сеанса.

  2. Мне бы хотелось иметь возможность закрыть все открытые сессии или получить список открытых сессий и закрыть определенные (на сервере, конечно).

Как бы я поступил так? Google оказался на удивление бесполезным ...

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Ответ будет много "это зависит". Некоторые из привязок не являются сессионными. Например, что-то вроде BasicHttpBinding не выполняет сеансы само по себе, но если вы включите режим совместимости ASP.net , вы можете заставить работать управление сеансами ASP.net. После этого вы сможете использовать Session_Start и Session_End в global.asax, чтобы делать то, что вы хотите, когда сессии открываются или закрываются.

Вы должны посмотреть на используемую привязку и посмотреть, имеет ли она встроенную поддержку сессий, потому что некоторые из них делают.

Если вы выполняете аутентификацию, вы также можете имитировать систему управления сеансами, сопоставляя запросы аутентифицированным пользователям и сохраняя запись сеанса в базе данных.

Я скажу, что в любом случае я не уверен, что "закрытие" сессии принесет вам. Если вы также не заблокируете пользователя каким-либо образом, следующий запрос сразу же начнет новый сеанс, если предыдущий был завершен. Может быть, если вы объясните, какую цель вы хотите достичь (и почему), мы можем оказать вам дополнительную помощь.

0 голосов
/ 15 февраля 2011

Я согласен с ответом Тридуса на это.Вы можете использовать Session со службами WCF, включив режим совместимости ASP.NET.

Проверьте http://msdn.microsoft.com/en-us/library/aa702542.aspx для начального чтения.Имейте в виду - в принципе службы должны быть лицами без гражданства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...