C# WCF服务中的会话使用

C# WCF服务中的会话使用,c#,wcf,visual-studio-2008,wcf-data-services,wcf-client,C#,Wcf,Visual Studio 2008,Wcf Data Services,Wcf Client,在我的wcf项目中,我想在使用asp.net会话时存储一些用户信息(userid或其他信息)。登录后,userid将存储在会话中 我发现我们可以在wcf中使用httpcontext.current.session,但这是唯一支持IIS中承载的wcf的服务。 我的wcf服务将在Windows服务中托管。有什么办法吗?wcf中是否有任何变量或函数可以获取这些特性? 请给我指路。谢谢你的帮助 //For example //LogOnWCFService public Boolean LogOn

在我的wcf项目中,我想在使用asp.net会话时存储一些用户信息(userid或其他信息)。登录后,userid将存储在会话中 我发现我们可以在wcf中使用httpcontext.current.session,但这是唯一支持IIS中承载的wcf的服务。 我的wcf服务将在Windows服务中托管。有什么办法吗?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
    }
}

我会避免在WCF中使用
会话
,特别是如果您希望在不同的服务调用中使用会话数据。 更好的方法是实现自己的会话管理。成功登录后,
LogOnService
可以创建唯一的
sesion ID
,并将其返回给客户端。
会话ID
可以与其他信息(用户ID等)一起保存。然后,所有其他服务在每个方法调用中都包含该
会话ID
,以识别自身

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