7

ユーザーがアプリケーションにアクセスできるかどうかを確認する次のコードがあります。問題は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();
    }
}
4

2 に答える 2

5

匿名ユーザーがいるようです。匿名ユーザーを許可したくない場合は、web.config に次を追加します。

<system.web>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>
于 2013-05-23T08:40:12.240 に答える
0

IIS Express で Windows 認証を使用している場合は、 C:\Users\[username]\Documents\IISExpress\config\applicationhost.config にあることを確認してください。

関連する質問を確認してください: IIS Express で ASP.NET MVC のデバッグ時に Access Denied エラーが発生する

于 2014-07-14T11:28:46.350 に答える