Рейтинг:
0
Kornfeld Eliyahu Peter
1. Никогда не используйте конкатенацию строк для создания SQL - запроса-учитесь использовать параметризованный SQL-запрос! (Образец для вас - http://www.dreamincode.net/forums/topic/268104-parameterizing-your-sql-queries-the-right-way-to-query-a-database/[^])
2. Измените свой код, чтобы проверить тип пользователя после чтения его из базы данных, а не перенаправлять в соответствии с ним:
if ( dr.HasRows )
{
dr.Read( );
Session[ " UName" ] = dr[ 1 ].ToString( );
;
Session[ " UPasword" ] = dr[ 4 ].ToString( );
Session[ "UserType_ID" ] = dr[ 0 ].ToString( );
;
//Session["prenom"] = dr[2].ToString();
//Session["telephone"] = dr[3].ToString();
}
// !!!
if(Convert.ToString(Session[ "UserType_ID" ]) == "admin" )
{
Response.Redirect( "View_Reports.aspx" );
}
else
{
Response.Redirect( "gallery.aspx" );
}
Diya Ayesa
Спасибо Вам за ваш ответ, когда я пробую ваш код, он показывает мне ошибку: индекс находился за пределами массива. в этой строке Session ["UPasword"] = dr[ 4 ]. ToString( );
Kornfeld Eliyahu Peter
Это твоя линия! Я просто скопировал его сюда, чтобы сделать образец полным...
Diya Ayesa
и предупреждение об ошибке : предупреждение 20 возможное непреднамеренное сравнение ссылок; чтобы получить сравнение значений, приведите левую сторону к типу 'string'
в этой строке if (Session ["UserType_ID"] = = " admin" )
Kornfeld Eliyahu Peter
Измените строку на
если (преобразовать.ToString(Session ["UserType_ID"]) = = " admin" )
Diya Ayesa
это код который я пробую но админ всегда идет на страницу галереи где как я хочу админ должен перейти на страницу отчетов и это не работает
если (dr. HasRows )
{
др.Читать( );
Session ["UName" ] = dr[ 0 ]. ToString( );
Session ["UPasword"] = dr[ 1 ]. ToString( );
Session ["UserType_ID" ] = dr[ 2 ]. ToString( );
// Session ["prenom"] = dr[2].Метод toString();
// Session ["телефон"] = dr[3].Метод toString();
}
// !!!
если (преобразовать.ToString(Session ["UserType_ID"]) = = " admin" )
{
Ответ.Перенаправление ("View_Reports. aspx" );
}
ещё
{
Ответ.Перенаправление ("gallery. aspx" );
}
Kornfeld Eliyahu Peter
Может быть, ваш UserType_ID не является администратором? Я только что написал, что в качестве примерного значения фактическое значение известно только вам!!!
Member 13047328
я пытаюсь перенаправить adminhome или userhome, но он не может перенаправить.
Member 13047328
Защищенные суб btncont_Click(как byval отправителя как объект, как byval E Как системы.EventArgs) обрабатывает btncont.Щелчок
Dim conn как новый SqlConnection(WebConfigurationManager.Соединительные нити ("con1").Параметр connectionString)
Dim cmd As New SqlCommand ("select * from tbluser where UserName=@unm and Password=@pwd", conn)
УМК.Параметры.Добавить (новый SqlParameter ("@unm", txtnm. Text))
УМК.Параметры.Добавить(новый объект sqlparameter("@дуо", сессии("инвалидов")))
Коннектикут.Открыть()
Дим ДР в качестве объекта sqldatareader
dr = cmd.Метода executereader()
Если доктор.Читать Далее
utype = dr. GetString(7)
Если utype = "Admin", то
Ответ.Перенаправление("adminhome.аспн?Имя пользователя=" &амп; txtnm.Текст)
ElseIf utype = "пользователь", то
Ответ.Перенаправление("userhome.аспн?Имя пользователя=" &амп; txtnm.Текст)
Конец, Если
Конец, Если
др.Рядом()
Коннектикут.Закрывать()
Конец Подводной Лодки
Рейтинг:
0
VC.J
if (Convert.ToString(Session["UserType_ID"]).Equals("admin"))
{
Response.Redirect("View_Reports.aspx",false);
}
else
{
Response.Redirect("gallery.aspx",false);
}
чтобы избежать исключения прерывания потока, используйте приведенный выше код.
и Корнфельд Элиягу Питер прав может быть UserType_Id не является администратором