2011-12-14 2 views
1

В моем проекте wcf я хочу сохранить некоторую пользовательскую информацию (userid или что-то еще), поскольку мы используем сессию asp.net. После входа в систему пользователь будет хранить в сеансе , и мы можем получить его для другой службы. Я нашел, что мы можем использовать httpcontext.current.session в wcf, но это только поддержка wcf, размещенного в IIS. Мой сервис wcf будет размещаться в оконном сервисе. Есть ли способ? Есть ли какая-либо переменная или функция в wcf для получения этих функций? Пожалуйста, направляйте меня правильно. Спасибо за вашу помощь.Использование сеанса в службе WCF

//For example 

//LogOnWCFService 
public Boolean LogOn(string userID, string PWD) 
{ 
    currentUserID = userID; 
    HttpContext.Current.Session.Add("UserID",userID); 
    return true; 
} 

//ProcessWCFService 
public void Process() 
{ 
    string userid = HttpContext.Current.Session["UserID"].ToString(); 
    if(userid == 1) 
    { 
     //Do Something 
    } 
} 

ответ

0

Я хотел бы избежать использования sessions с WCF, espescially если вы хотите использовать данные сессии более различных вызовов службы. Лучшим подходом было бы реализовать собственное управление сеансом. LogOnService может создать уникальный sesion ID после успешного входа в систему и вернуть его клиенту. session ID может сохраняться вместе с дополнительной информацией (UserID и т. Д.). Все остальные службы затем включают этот session ID в каждом вызове метода для идентификации самого себя.

nSess = logscv.LogOn(UserID)....procsvc.Process(nSess)