C#Web服务调用中的私有变量不起作用?

时间:2011-07-25 22:06:13

标签: c# .net web-services client-side private-members

我想弄清楚用户在调用我的网络服务。为此,我想传入Environment.UserName。但是,如果它只是一个字符串,那么编写自己的客户端的任何人都可以放入“asdf”并绕过我想要做的事情。所以在我的Web服务中声明了一个公共类:

public class UserInfo
{
    private string userName;

    public UserInfo()
    {
        userName = Environment.UserDomainName + "/" + Environment.UserName + " on " + Environment.MachineName;
    }
    public string getUserName()
    {
        return userName;
    }
}

现在我打电话的时候:

ClientTest.ServiceReference.UserInfo user = new ClientTest.ServiceReference.UserInfo();

在我的客户端,我认为它会获取我的信息(“MyComputer上的域/我”)。它不是。 Web服务将获取其信息(“Server Auter上的NT AUTHORITY / NETWORK SERVICE”)

是否有修改我的代码以使其工作?我的解决方案是否可以实现这一点?还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我不认为环境是您想要使用的。看起来您所做的只是获取运行该服务的域,用户名和计算机,而不是尝试访问该服务的用户。

我相信你想要的是WebService.Context对象。这使您可以访问有关HTTP客户端的信息。