2013-04-23 90 views
1

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

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

     return session.Username; 
    } 

这工作得很好,但是当我从DLL访问web服务,返回的值始终为NULL,这是因为当控制台应用程序连接到Web服务一新会话将被初始化。有没有其他的选择我如何存储登录的用户名,并通过我的web服务将它传递给dll?使用应用程序Get/Set不是一个好的决定,因为我的web应用程序需要处理不同的用户。任何人都可以指引我正确的方向?

的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; 

谢谢。

+0

等待,保存在会话中的用户名,是在Web服务的会话或Web应用程序的会话? – Medinoc 2013-04-23 10:09:33

+0

我已更新我的问题Medinoc,以便您可以获得更好的图片 – krafo 2013-04-23 10:14:59

+0

谢谢。但是,在“控制台应用程序连接到Web服务时”时,您会提到以前未提及的控制台应用程序。它在这方面的作用是什么?此外,你的第三个代码片段,它是在网络应用程序? – Medinoc 2013-04-23 10:22:13

回答