ユーザーがアプリケーションにアクセスできるかどうかを確認する次のコードがあります。問題はSystem.Web.HttpContext.Current.User.Identity.Name
が空を返します。私がチェックしました。何が問題なの?私の他のアプリケーションは、同じコードスニペットを使用し、そこで動作します。なぜこうなった?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();
}
}
このコードはASP.netアプリケーションから取得したものですか? –
両方のアプリケーションが独自の認証状態を管理していますか? –
おそらく私たちにあなたのweb.configを与える価値があります – Aron