我用的是
CurrentIdentity.Name 得到的结果是WANGZW-SHWY\ASPNET 前面的wangzw-shwy是我的计算机名称,我的登录名是wangzhiwSystem.Environment.UserName 得到的结果是ASPNET上面是我试的两个方法,在项目中运行是可以获得我的登录用户名,但是一放到IIS上布置后就成了上述情况请各位高手指点迷津

解决方案 »

  1.   

    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();
       }
      }
      

  2.   

    我不是要服务器名
    我要的是,我把项目挂在服务器上,在IIS上布置好
    然后从其他的机子可以访问
    获取当前访问机子的登录名
      

  3.   

    WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            string[] logon = wp.Identity.Name.Split('\\');
            string UserDomain = logon[0];//网域
            string UserName = logon[1].ToString().ToLower();//登陆名
      

  4.   

    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
      

  5.   

    很难,操作系统不需要登录看到桌面后,iis才能够运行的iis 服务是WANGZW-SHWY\ASPNET身份运行的
      

  6.   

    web.config里设置了Forms验证模式吗?
      

  7.   

    这两个属性返回的用户名都是IIS用来执行ASP.NET代码的身份,就是ASPNET。这个是没有问题的。有时间lz可以研究一下IIS和ASP.NET的配置。至于你希望看到自己的名字,那么请将ASP.NET的身份验证设为Windows并且启用ASP.NET impersonation。相关的资料都可以在ASP.net和IIS.net上面搜索到。
      

  8.   

    首先要在IIS中把你的网站的匿名登录取消。在代码中这样写,就可以取到当前登录windows的域用户。string UserID=Page.User.Identity.Name;
      

  9.   

    我之前在一个项目用过取当前AD用户的 ,看看行不行 ? 要引用 一个 Interop.ActiveDs.dll 
        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" );
            }
        }
      

  10.   

    谢谢朋友们的建议和帮助
    14楼朋友的建议很好,有时间我会去研究的,但是现在急于解答问题呀
    17楼朋友的代码我试过了
    在直接运行项目是可以取到域用户名的
    可是一放到IIS上就又变成了ASPNET了
    郁闷呀我加分去,朋友们继续想办法呀
      

  11.   


      IIS 有没有设置 windows 域服务器的摘要式身份认证??  还有web.config 那里也要 
      

  12.   

    1楼,22楼,27楼的朋友,这个是很好的知识,可是依然不能帮我取出客户端的登录名呀
    至于24楼的朋友
    web.config 里面我设置过了,但是你说的那个
    “  IIS 有没有设置 windows 域服务器的摘要式身份认证??”
    我好像不太清楚,能否说得详细一点,在哪设置 
      

  13.   

    相关文章:http://blog.csdn.net/lfywy/archive/2008/07/16/2658623.aspx
    相关帖子:http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html
      

  14.   

    Page.User.Identity.Name;
    用这个吧。。
      

  15.   

    把IIS中的匿名登陸的勾去調,再用Request.ServerVariables["LOGON_USER"]
      

  16.   

    其实就是IIS的身份验证的问题 
    你的这样的需求当让不能使用匿名了、
    启用Windows身份验证 自然就能获取用户名、
      

  17.   

    共享解决方法是IIS的身份验证的问题 
    不允许使用匿名访问 
    启用Windows身份验证 
    就OK了
    可以取得域名加登录名了Page.User.Identity.Name
    最后我用的是这个,挺好用的
    再次谢谢各位了呀
    结贴去了