通过Web服务调用的类中的c#私有变量不起作用
本文关键字:变量 不起作用 Web 服务 调用 通过 | 更新日期: 2023-09-27 18:03:21
我正在尝试找出哪个用户正在调用我的web服务。为此,我想传入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();
在我的客户端中,我认为它会得到我的信息("Domain/Me on MyComputer")。但事实并非如此。web服务将获得它的信息("NT AUTHORITY/NETWORK service on ServerComputer")
有没有办法修改我的代码来让它工作?我的解决方案有可能实现吗?有没有更好的办法?
我不认为环境是你想要使用的。看起来您所做的一切都是获取服务运行的域、用户名和机器,而不是试图访问服务的用户。
我相信你需要的是WebService。上下文对象。这使您可以访问有关HTTP客户机的信息。