首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net 中获取当前计算机登录用户名,该怎么处理

2012-03-21 
asp.net 中获取当前计算机登录用户名我用的是CurrentIdentity.Name 得到的结果是WANGZW-SHWY\ASPNET 前面

asp.net 中获取当前计算机登录用户名
我用的是
CurrentIdentity.Name 得到的结果是WANGZW-SHWY\ASPNET 前面的wangzw-shwy是我的计算机名称,我的登录名是wangzhiw

System.Environment.UserName 得到的结果是ASPNET

上面是我试的两个方法,在项目中运行是可以获得我的登录用户名,但是一放到IIS上布置后就成了上述情况

请各位高手指点迷津

[解决办法]
http://www.ninedns.com/asp.net/
主机名 = Server.MachineName;

IP地址 = Request.UserHostAddress;

系统时间 = DateTime.Now.ToString();

服务端口 = Request.ServerVariables["SERVER_PORT"];

操作系统 = Environment.OSVersion.ToString().Remove(0, 10);

环境版本 = Request.ServerVariables["SERVER_SOFTWARE"];
private void GetInfo()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Response.Write ("cpu序列号:"+cpuInfo.ToString ());
}

//获取硬盘ID
String HDid;
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach(ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
Response.Write ("硬盘序列号:"+HDid.ToString ());
}


//获取网卡硬件地址
9558821702001755616
 
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach(ManagementObject mo in moc2)
{
if((bool)mo["IPEnabled"] == true)
Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
mo.Dispose();
}
}

[解决办法]
那你应说是得到客户机名称,
[解决办法]
又是一个想写病毒的~~~
[解决办法]
WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
string[] logon = wp.Identity.Name.Split('\\');
string UserDomain = logon[0];//网域
string UserName = logon[1].ToString().ToLower();//登陆名
[解决办法]
Function GetLocalUserName
 Declare integer GetUserName in advapi32 string @lpBuffer, integer @nSize nSize = 250 lpBuffer = SPACE(nSize) If GetUserName (@lpBuffer, @nSize) > 0 lpBuffer = STRTRAN( allt(Subs(lpBuffer, 1, nSize)), CHR(0), [])
Return lpBuffer
Else
Return [] EndifEndfunc
[解决办法]
很难,

操作系统不需要登录看到桌面后,iis才能够运行的

iis 服务是WANGZW-SHWY\ASPNET身份运行的

[解决办法]
web.config里设置了Forms验证模式吗?
[解决办法]

探讨
http://www.ninedns.com/asp.net/
主机名 = Server.MachineName;

IP地址 = Request.UserHostAddress;

系统时间 = DateTime.Now.ToString();

服务端口 = Request.ServerVariables["SERVER_PORT"];

操作系统 = Environment.OSVersion.ToString().Remove(0, 10);

环境版本 = Request.ServerVariables["SERVER_SOFTWARE"];
privat…

------解决方案--------------------


Context.User.Identity.Name
[解决办法]

探讨
Context.User.Identity.Name

[解决办法]
这两个属性返回的用户名都是IIS用来执行ASP.NET代码的身份,就是ASPNET。这个是没有问题的。有时间lz可以研究一下IIS和ASP.NET的配置。

至于你希望看到自己的名字,那么请将ASP.NET的身份验证设为Windows并且启用ASP.NET impersonation。

相关的资料都可以在ASP.net和IIS.net上面搜索到。
[解决办法]
up!
[解决办法]
首先要在IIS中把你的网站的匿名登录取消。在代码中这样写,就可以取到当前登录windows的域用户。

string UserID=Page.User.Identity.Name;
[解决办法]
我之前在一个项目用过取当前AD用户的 ,看看行不行 ? 要引用 一个 Interop.ActiveDs.dll 
C# code
    protected void Page_Load ( object sender, EventArgs e ) {                 if ( Page.User.Identity.IsAuthenticated == false ) {            string userName = new WindowsPrincipal ( WindowsIdentity.GetCurrent () ).Identity.Name;                //System.Environment.UserName;             userName = userName.Split ( '\\' ) [1];            if ( !user.ExistsUser ( userName, "0" ) ) {                Response.Write ( "Access Deny" );            } else {                FormsAuthentication.RedirectFromLoginPage ( userName, true );                Response.Redirect ( "Default.aspx" );            }        } else {            Response.Redirect ( "Default.aspx" );        }    }
[解决办法]
学习
[解决办法]
探讨
这两个属性返回的用户名都是IIS用来执行ASP.NET代码的身份,就是ASPNET。这个是没有问题的。有时间lz可以研究一下IIS和ASP.NET的配置。

至于你希望看到自己的名字,那么请将ASP.NET的身份验证设为Windows并且启用ASP.NET impersonation。

相关的资料都可以在ASP.net和IIS.net上面搜索到。

[解决办法]
Request.LogonUserIdentity.Name


[解决办法]
探讨
http://www.ninedns.com/asp.net/
主机名 = Server.MachineName;

IP地址 = Request.UserHostAddress;

系统时间 = DateTime.Now.ToString();

服务端口 = Request.ServerVariables["SERVER_PORT"];

操作系统 = Environment.OSVersion.ToString().Remove(0, 10);

环境版本 = Request.ServerVariables["SERVER_SOFTWARE"];
private void GetInfo()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject…

[解决办法]
学习了 有意愿的请进63242231群 C# 共同 学习 谢谢
[解决办法]
探讨
谢谢朋友们的建议和帮助
14楼朋友的建议很好,有时间我会去研究的,但是现在急于解答问题呀
17楼朋友的代码我试过了
在直接运行项目是可以取到域用户名的
可是一放到IIS上就又变成了ASPNET了
郁闷呀

我加分去,朋友们继续想办法呀

[解决办法]
UP!
[解决办法]
学习了 有意愿的请进63242231群 C# 共同 学习 谢谢
[解决办法]
探讨
http://www.ninedns.com/asp.net/
主机名 = Server.MachineName;

IP地址 = Request.UserHostAddress;

系统时间 = DateTime.Now.ToString();

服务端口 = Request.ServerVariables["SERVER_PORT"];



操作系统 = Environment.OSVersion.ToString().Remove(0, 10);

环境版本 = Request.ServerVariables["SERVER_SOFTWARE"];
privat…


[解决办法]
建议试下20楼的方法
[解决办法]
相关文章:http://blog.csdn.net/lfywy/archive/2008/07/16/2658623.aspx
相关帖子:http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html
[解决办法]
Page.User.Identity.Name;
用这个吧。。
[解决办法]
探讨
首先要在IIS中把你的网站的匿名登录取消。在代码中这样写,就可以取到当前登录windows的域用户。

string UserID=Page.User.Identity.Name;

[解决办法]
把IIS中的匿名登陸的勾去調,再用

Request.ServerVariables["LOGON_USER"]
[解决办法]
探讨
20楼取出来的是计算机名称,不是登录用户名

[解决办法]
学习下 
 

[解决办法]
学习
[解决办法]
lz说说你的应用场景是什么?
[解决办法]
其实就是IIS的身份验证的问题 
你的这样的需求当让不能使用匿名了、
启用Windows身份验证 自然就能获取用户名、
[解决办法]
学习
[解决办法]
学习!

热点排行