2011-12-14 34 views
1

私のwcfプロジェクトでは、asp.net session.Afterを使用しているときにユーザー情報(ユーザーIDなど)を保存したいのですが、ユーザーIDはセッション に保存され、他のサービス.WCFでhttpcontext.current.sessionを使うことができますが、IISでホストされているwcfのみがサポートされています。 私の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

私はあなたが別のサービスコールを介してセッションデータを使用したいespescially場合、WCFとsessionsの使用を避けるだろう。 より良いアプローチは、独自のセッション管理を実装することです。 LogOnServiceは、成功したログオン後に一意のsesion IDを作成し、それをクライアントに返す可能性があります。 session IDは、追加情報(UserIDなど)とともに保存することができます。他のすべてのサービスには、それ自身を識別するすべてのメソッド呼び出しにこのsession IDが含まれています。

nSess = logscv.LogOn(UserID)....procsvc.Process(nSess) 
関連する問題