我有以下代码来验证用户是否有权访问该应用程序.问题是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();
}
}
Run Code Online (Sandbox Code Playgroud)
看起来你有一个匿名用户.如果您不想允许匿名用户,请将以下内容添加到web.config:
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16661 次 |
| 最近记录: |