日期:2015/6/28来源: IT猫扑网

  To get the windows user name through programatically. Compulsary we need to set the web server.

  Open the Internet Infomation Services(IIS), Select your ASP.NET Virtual Directory, right click, go to the Properties, In Properties window go to Directory Security Tab, Here You Find the "Edit" button in Anonymous access and Authentication Control. Press Edit Button. Now Authentication Methods dialogbox will appear.

  In this dialog box by default it is set(checked) Anonymous Access. uncheck this checkbox and go to botom of this dialog box check the Integrated windows authentication. Here why we are selecting this Default web server is logged by ISUER_MachineName so if it is window authentication web server will take the credentials from windows logged user.

  Getting the User Name :

  using three ways we can get the User Name using C#

  1) System.Security.Principal.WindowsPrincipal p = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;

  string strName = p.Identity.Name;

  [ OR ]

  2) string strName = HttpContext.Current.User.Identity.Name.ToString();

  [ OR ]

  3) string strName = Request.ServerVariables["AUTH_USER"]; //Finding with name

  string strName = Request.ServerVariables[5]; //Finding with index

  In Above 3 Cases returnin string contains DomainName\WinNTLoggedUserName

  (for Ex: Microsoft\Bill.Gates. Here Microsoft is domain Bill.Gates is Logger User Name )

  Using string operations seperate the DomainName and UserName.