asp.net Web服务中类似会话的信息

时间:2012-11-09 07:35:34

标签: asp.net web-services

我添加了一个新的asp.net项目,它只在我的MVC应用程序之上托管(Classic)WebServices。

Web服务调用位于Biz Layer Dlls中的Biz Objects。

WebService客户端就像普通用户一样,必须对每个操作进行身份验证和授权。

我正在使用SOAP身份验证令牌在第一次调用时验证用户,然后在每次调用时传递该令牌。

BizObjects访问IUserSessionManager以获取授权用户,然后根据请求调用授权用户。使用MVC应用程序和调用BusinessObjects的Windows应用程序非常容易。 那么如何在以下系统中存储用户信息,我的BusinessObjects可以从中检索它们。 (这对您来说可能很容易,但我不习惯使用Web服务)

public class XyzUserSessionManager
{
    private static IXyzUserSessionManager _instance;
    public static IXyzUserSessionManager UserSessionManager
    {
        get { return _instance; }
        set { _instance = value; }
    }
    public static IXyzUserSession Current
    {
        get { return UserSessionManager.Current; }
    }
}


    public IXyzUserSession Current
    {
        get
        {
            if (HttpContext.Current == null || HttpContext.Current.Session == null || HttpContext.Current.Session[SessionKey] == null)
                return null;
            return (IXyzUserSession)HttpContext.Current.Session[SessionKey];
        }
        protected set
        {
            HttpContext.Current.Session[SessionKey] = value;
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以像常规网络应用一样启用会话状态支持。这是在每个方法的基础上完成的。在此处查看更多详细信息:http://msdn.microsoft.com/en-us/library/aa480509.aspx