【发布时间】:2013-05-23 07:24:46
【问题描述】:
我有以下代码来验证用户是否有权访问应用程序。问题是 System.Web.HttpContext.Current.User.Identity.Name 返回空。我检查了。可能是什么问题呢?我的其他应用程序使用相同的代码 sn-p 并且它在那里工作。为什么会这样?
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();
}
}
【问题讨论】:
-
此代码是否取自 ASP.net 应用程序?
-
两个应用都管理自己的身份验证状态吗?
-
或许值得将您的 web.config 提供给我们
-
您使用的是什么身份验证?形式,联邦?您需要查看您的身份验证代码,查看用户是如何填充的
-
你可能想看看这个答案stackoverflow.com/a/8841841/293712 和用户其他选项