为什么System.Web.HttpContext.Current.User.Identity.Name返回一个空字符串
本文关键字:一个 字符串 返回 Name Web System HttpContext Current Identity User 为什么 | 更新日期: 2023-09-27 18:15:01
我有以下代码来验证用户是否有权访问应用程序。问题是System.Web.HttpContext.Current.User.Identity.Name
返回空。我检查过了。有什么问题吗?我的另一个应用程序使用相同的代码片段,它在那里工作。为什么会发生这种情况?
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();
}
}
看起来您有一个匿名用户。如果不允许匿名用户,请在web.config中添加以下内容:
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
如果您正在使用IISExpress的Windows身份验证,请确保您在C:'Users'[username]'Documents'IISExpress'config'applicationhost。配置。
检查相关问题:IIS Express在调试ASP时给出Access Denied错误。净MVC