Why does System.Web.HttpContext.Current.User.Identity.Name return an empty string?

I have the following code to check if the user has access to the application or not. The System.Web.HttpContext.Current.User.Identity.Name task returns empty. I checked. What could be the problem? My other application uses the same code snippet and it works there. Why is this happening?

 string username = System.Web.HttpContext.Current.User.Identity.Name; string str = "SELECT LASTNAME +', '+ FIRSTNAME AS NAME, USER_NAME, DEPARTMENT FROM DBNAME.DBO.TABLENAME WHERE USER_NAME = '" + username + "' "; SqlCommand cmd = new SqlCommand(str, conn); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); if (rdr.HasRows == false) { Server.Transfer("unauthorized.htm"); } else { while (rdr.Read()) { name = rdr["NAME"].ToString(); username = rdr["USER_NAME"].ToString(); dept = rdr["DEPARTMENT"].ToString(); } } 
+7
source share
2 answers

It looks like you have an anonymous user. If you do not want to allow anonymous users, add the following to web.config:

 <system.web> <authorization> <deny users="?" /> </authorization> </system.web> 
+5
source

If you are using Windows authetication with IIS Express, make sure you have C: \ Users \ [username] \ Documents \ IISExpress \ config \ applicationhost.config.

Check related question: IIS Express gives an "Access Denied" error message when debugging ASP.NET MVC

0
source

All Articles