strdomainname = System.Web.HttpContext.Current.User.Identity.Name.ToString();为什么得到的为空呢

解决方案 »

  1.   

    loginid=System.Web.HttpContext.Current.User.Identity.Name.ToString(); 沒有問題呀,你是不是沒有ad登陸呢,iis哪裡需要設置。
      

  2.   

    要用此方法取得用户当前标识,必须配合Forms身份验证
      

  3.   

    ASP.NET 身份验证请参见
    ASP.NET Web 应用程序安全性 | Windows 身份验证提供程序 | Passport 身份验证提供程序 | Forms 身份验证提供程序 | ASP.NET Web 应用程序安全性 | ASP.NET 配置
    身份验证是从用户处获取标识凭据(如用户名和密码)并通过某些授权机构验证那些凭据的过程。如果这些凭据有效,则提交这些凭据的实体被视为已通过身份验证。在身份得到验证后,授权进程将确定该身份是否可以访问给定资源。ASP.NET 通过身份验证提供程序(即包含验证请求方凭据所需代码的代码模块)来实现身份验证。ASP.NET 支持下表中描述的身份验证提供程序。ASP.NET 身份验证提供程序 说明 
    Forms 身份验证 一种系统,通过该系统利用 HTTP 客户端重定向将未经身份验证的请求重定向到某 HTML 窗体。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该 Cookie,ASP.NET 事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。 
    Passport 身份验证 由 Microsoft 提供的集中身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。 
    Windows 身份验证 ASP.NET 同时使用 Windows 身份验证和 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 以下面三种方式之一执行身份验证:基本、简要或集成 Windows 身份验证。在 IIS 身份验证完成后,ASP.NET 使用已验证的身份来授权访问。 若要为 ASP.NET 应用程序启用身份验证提供程序,只需按下文所示为应用程序配置文件创建一个项。// Web.config file     
    <authentication mode= "[Windows|Forms|Passport|None]"/>
    模式设置为以下身份验证模式之一:Windows、Forms、Passport 或 None。默认为 Windows。如果模式是 None,则 ASP.NET 不对请求进行任何附加身份验证 - 如果您要实现自定义身份验证方案,或者如果您只使用匿名身份验证并想得到可能的最高性能级别,此模式可能非常有用。该身份验证模式无法在应用程序根目录以下的级别进行设置。与其他 ASP.NET 模块的情况一样,除非显式重写,否则,URL 空间中的子目
      

  4.   

    if(Request.ServerVariables["LOGON_USER"]  == "")   

            Response.Status   =   "401   Unauthorized"  ; 
    }
    else
    {
          loginusername = Request.ServerVariables["LOGON_USER"];
    }
      

  5.   

    怎么个ad登陸,不懂. 请解释一下好吗. IIS里面网站的属性-目录安全性-身份验证和访问控制-编辑--集成WINDOWS验证也设置啦.我用的是WINDOWS 2000系统