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