asp.net & windows nt login name

hey guys -

i've read a lot of people asking questions on this topic and i can't get any of their solutions to make sense to me.

right off, i'll ask - i have an asp.net website (c# backend). i'm trying to return the logged in user name (windows NT name) to my code. my IIS site is set up via anon auth.

is there any way that i can make this happen? here's a snippet that just returns an empty field for the username.

thanks guys!!


string userName = HttpContext.Current.User.Identity.Name.ToString(); 
        string[] username = new string[10];
        username = userName.Split('\\');
        userName = username[1].ToString();
        int wellid = 0;
        
        //open up connection to server
        String conString = GetConnectionString();
        TextBox1.Text = userName;
        if (Request.QueryString["add"] != null)
        {
            wellid = int.Parse(Request.QueryString["add"].ToString());
 
            try
            {
                SqlConnection connDB = new SqlConnection(conString);
                connDB.Open();
                SqlCommand cmdDB = connDB.CreateCommand();
 
                cmdDB.CommandText = "INSERT INTO MAP.USERSELECTION (userid, welloid) select '" + userName +
                            "'," + wellid;
                cmdDB.ExecuteNonQuery();
                connDB.Close();
                TextBox1.Text = "Item added to your list! You can close this browser!";
            }
            catch { }
        }

Open in new window

sclapleAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
bbaoConnect With a Mentor IT ConsultantCommented:
> my IIS site is set up via anon auth.

it is by design, if you do allow anonymous authentication and windows authentication at the same time. not only HttpContext.Current.User.Identity.Name property, other server variables such as AUTH_USER and REMOTE_USER also return an empty string.

as per MS KB article Q306359, you need to deny access to the anonymous user in the <authorization> section of the Web.config file, or use windows authentication only in the Web.config file. for more information, please read the following KB articles. Q306359 gives the resolution step by step.

PRB: Request.ServerVariables("LOGON_USER") Returns Empty String in ASP.NET
http://support.microsoft.com/kb/306359

PRB: Request.ServerVariables("LOGON_USER") Returns Empty String
http://support.microsoft.com/kb/188717

hope it helps,
bbao
0
 
Chandan_GowdaCommented:
Enable Integrated windows Authentication for your website in IIS
0
 
sclapleAuthor Commented:
is that the only way to do it? does that mean i have to be intranet to run it?
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
Ashish PatelCommented:
1. Set <authentication mode="Windows"/> in your web config. check that the mode is set to Windows.
2. You can get the login name by using Request.ServerVariables("LOGON_USER")
0
 
Chandan_GowdaCommented:
If you want to get the Windows NT username you have to enable integrated windows authentication,It can be a internet or Intranet.Both will work fine
0
 
sclapleAuthor Commented:
if it is internet, my users will have to input a username/password that authenticates with the server hosting the site, right?
0
 
Chandan_GowdaCommented:
If you have exposed to internet then no need for your users to input the username/password
0
All Courses

From novice to tech pro — start learning today.