请教高手:VS2005启动Web程式和直接访问地址时结果不一样
各位高手:
小弟遇到一个问题,请教一下
问题描述:
一个Web程序,取客户端用户名,我在VS2005中无论是Debug还是Rlease时,按F5或Ctrl+F5执行时,都能正确的取到用户名,但是我在IE中直接敲地址:http://172.18.49.95/worktime打开该页面时,确不能取出用户名
代码如下:
string st = "ttt ";
ManagementClass mc = new ManagementClass( "Win32_ComputerSystem ");
ManagementObjectCollection moc = mc.GetInstances();
try
{
foreach (ManagementObject mo in moc)
{
foreach (PropertyData pd in mo.Properties)
{
string s = pd.Name;
if (s.Equals( "UserName ") && pd.Value != null)
{
st = pd.Value.ToString();
}
st += "\r\n ";
}
}
moc = null;
mc = null;
}
catch (Exception e01)
{
Response.Write(e01.Message);
}
string sUserName = System.Net.Dns.GetHostEntry(Page.Request.UserHostName).HostName;
sUserName = sUserName.Substring(0, sUserName.IndexOf( ". "));
lblUserName.Text = sUserName + "-- " + st + "-- " + System.Environment.UserName;
各位高手,请不吝赐教,感激不尽!
[解决办法]
两者运行时所使用的账户不同。
一个是administator一个是匿名账户。所以,ip访问没有权限。你可以在iis里去掉匿名访问
[解决办法]
按f5是用了vs自带的服务器,你要直接访问就要发布网站。。。
[解决办法]
权限不够的原因。将你运行程序的账户加入administrator组
[解决办法]
你调试的时候 实际是取自己本机的 当然可以了
但是 通过IP 来访问 实际就是一台远程电脑 来访问你的机器
你想看 你的登录用户信息 会这样就给远程机器取到了 那windows不又要被批斗了..
就算是使用 身份模拟 你也只是取你的服务器上的登录信息 那里能取到客户的呢.
除非你是做成activex 来取回发信息给服务器.