簡體   English   中英

為什么System.Web.HttpContext.Current.User.Identity.Name返回一個空字符串?

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

我有以下代碼來驗證用戶是否有權訪問該應用程序。 問題是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>

如果您在IIS Express中使用Windows身份驗證,請確保您具有C:\\ Users \\ [用戶名] \\ Documents \\ IISExpress \\ config \\ applicationhost.config。

檢查相關問題: IIS Express在調試ASP.NET MVC時出現Access Denied錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM