Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自DLL的会话变量值_C#_Asp.net_Web Services_Session - Fatal编程技术网

C# 来自DLL的会话变量值

C# 来自DLL的会话变量值,c#,asp.net,web-services,session,C#,Asp.net,Web Services,Session,我有一个调用DLL的web应用程序,这个DLL从web服务获取一些数据。我想做的是,当用户登录到web应用程序时,我当前正在将其用户名存储在会话变量中。在我的Web服务中,我有这样一个WebMethod: [WebMethod(EnableSession = true)] public string getLoggedInUsername() { SessionManager session = new SessionManager();

我有一个调用DLL的web应用程序,这个DLL从web服务获取一些数据。我想做的是,当用户登录到web应用程序时,我当前正在将其用户名存储在会话变量中。在我的Web服务中,我有这样一个WebMethod:

    [WebMethod(EnableSession = true)]
    public string getLoggedInUsername()
    {
        SessionManager session = new SessionManager();

        return session.Username;
    }
这很好,但是当我从DLL访问Web服务时,返回的值总是空的,这是因为当控制台应用程序连接到Web服务时,一个新的会话将被初始化。是否有其他方法可以存储登录的用户名并通过我的Web服务将其传递给dll?使用应用程序Get/Set不是一个好的决定,因为我的webapp需要处理不同的用户。有人能给我指出正确的方向吗

SessionManager类包含以下内容:

    public string Username
    {
        get
        {
            return (string)HttpContext.Current.Session["Username"];
        }
        set
        {
            HttpContext.Current.Session["Username"] = value;
        }
    }
用户登录到我的应用程序后(我使用asp.net成员身份):我用以下方式将用户名分配给会话变量:

            SessionManager session = new SessionManager();
            session.Username = User.Identity.Name;
谢谢。

查看本文:
您可能需要重新初始化代理和cookie容器

等等,该用户名存储在会话中,是在web服务会话中还是在web应用程序会话中?我已更新了我的问题Medinoc,以便您可以获得更好的图片。但是,在“当控制台应用程序连接到Web服务时”中,您提到了以前未提及的控制台应用程序。它在这方面的作用是什么?还有,你的第三个代码片段,是在web应用程序中吗?很抱歉,这是我的输入错误,控制台应用程序是DLL。我键入了console应用程序,因为我总是从console应用程序尝试调试。否DLL不在我的web应用程序中。这是一个单独的dll。基本上,dll包含nunit测试,这些测试是从web应用程序调用的。