Я использую Seesion в моем проекте, в котором хранится useTypeID (admin, manager и т. Д.), А для backoffice может вводиться только администратор и менеджер, поэтому на каждой странице моего backoffice в в первой строке я проверить, если seesion является послойно живым и только тогда пользователь может войти на страницу:Странная проблема с сеансом и DDL
if (!EmployeeSession.IsAuthenticated || EmployeeSession.GetEmployeeType != 1 && EmployeeSession.GetEmployeeType != 2)
Response.Redirect("Default.aspx");
тот же код для всех страниц ... и все они работают отлично.
У меня есть одна страница, которая дает мне много неприятностей, так как я добавил сеанс. Страница все еще появляется правильно, но когда я выбираю новую область из DDL, я теряю свое восприятие для какого-то резонанса, и обратная передача переходит к ложной части проверки сессии ...
Я отлаживал это и, как я вижу, это только из-за 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 о þér то же, что ар работает ... и когда это не постбэк из DDL каждая вещь работает прекрасно, только после постбэк я ищу сеанс):
<div><a href="SearchAreasWithDDL.aspx">חיפוש אזור</a></div>
Я буду рад дать любого другой код, если neccesery, но, как я вижу, это код, который создает все проблемы ... И, как я уже сказал, все остальные страницы делают то же самое, единственная разница - это DDL ....
PS Я даже не добраться до кнопки мыши, которые получают данные, связанные с DDL, Сеанс умирает до того, как я войти в Pageload страницы на постбэка ....
10x
Вы можете разместить код через который вы попадаете на эту страницу с выпадающим списком? Можете ли вы также подтвердить, комментируя выпадающую страницу на этой странице, если сеанс сохранен правильно или все еще потерян? – InSane
Я не понял последнюю часть того, что вы просили, но если бы я сделал то, когда я не проверяю сеанс, страница работает отлично ... и для другого кода ... я отправляю его ... 10x – Erez
То, что я пытался спросить вас, заключается в том, что если вы удалите раскрывающийся список из SearchAreasWithDDL.aspx, то если вы перейдете с этой страницы на другую страницу, будет ли сеанс сохранен или он потеряется? См. То, что я пытаюсь выяснить, является ли проблема действительно чем-то связана с выпадающим списком или нет. Возможно, вы можете загрузить весь код для SearchAreasWithDDL.aspx где-то и опубликовать ссылку ..., которая может помочь !! – InSane