Я использую Seesion в своем проекте, в котором хранится useTypeID (admin, manager и т. Д.), И для бэк-офиса могут входить только администратор и менеджер, поэтому на каждой странице в моем бэк-офисе в первой строке я проверяю,качели еще живы, и только тогда пользователь может зайти на страницу:
if (!EmployeeSession.IsAuthenticated || EmployeeSession.GetEmployeeType != 1 && EmployeeSession.GetEmployeeType != 2)
Response.Redirect("Default.aspx");
Один и тот же код для всех страниц ... и все они работают отлично.
У меня естьодна страница, которая доставляет мне много хлопот, так как я добавил сессию.Страница по-прежнему отображается правильно, но когда я выбираю новую область из DDL, я теряю способность к резонансу, и постбэк переходит к ложной части проверки сеанса ...
Iотладил и, как я вижу, это только из-за DDL, может ли это быть или у меня есть какая-то другая проблема, которую я не вижу?
Это код в файле .aspx:
<td><asp:DropDownList ID="ddlAreasSearch" runat="server" /></td>
Это код в файле .cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!EmployeeSession.IsAuthenticated || EmployeeSession.GetEmployeeType != 1 && EmployeeSession.GetEmployeeType != 2)
Response.Redirect("Default.aspx");
if (Page.IsPostBack)
return;
DataSet ds = UiHelper.InitDDL(
ddlAreasSearch,
0,
"AreaName",
"AreaID",
ConfigurationManager.AppSettings["ConnStr"],
"spAreas_Select"
);
}
UiHelper просто для заполнения DDL с помощью функции staic:
public static DataSet InitDDL(DropDownList ddl, Int16 DataSetTableIndex, string DataTextField, string DataValueField, string ConnectionString, string CommandName, params SqlParameter[] Params)
{
DataSet ds = DbHelper.ExecuteDataSet(ConnectionString, CommandName, Params);
ddl.DataSource = ds.Tables[DataSetTableIndex];
ddl.DataTextField = DataTextField;
ddl.DataValueField = DataValueField;
ddl.DataBind();
return ds;
}
строка, которая вызывает эту страницу (просто href ... ничего особенного, и agian, у меня есть еще около 20 таких же, как работает ... и когда это не обратная передача от DDL, все работает отлично, простопосле обратной передачи я смотрю сессию):
<div><a href="SearchAreasWithDDL.aspx">חיפוש אזור</a></div>
Я буду рад дать любой другой код, если понадобится, но, как я вижу, это код, который создает все проблемы ... Икак я сказал, все остальные страницы делают то же самое, единственное отличие - это DDL ....
PS Я даже не могу нажать на кнопку, чтобы получить данные, относящиеся к DDL. Сессия умирает до того, как я ввожу загрузку страницы при обратной передаче ....
10x