2010-08-17 9 views
0

useTypeID (관리자, 관리자 등)를 저장하는 프로젝트에서 Seesion을 사용하고 있습니다. 백 오피스의 경우 관리자와 관리자 만 입력 할 수 있으므로 내 백 오피스의 모든 페이지에서 모든 페이지에 대한세션 및 DDL과 관련된 이상한 문제

if (!EmployeeSession.IsAuthenticated || EmployeeSession.GetEmployeeType != 1 && EmployeeSession.GetEmployeeType != 2) 
     Response.Redirect("Default.aspx"); 

동일한 코드 ... 그리고 그들 모두는 완벽하게 작동하는 다음 seesion은 회전식 살아 만 다음 사용자가 페이지를 입력 할 경우 첫 번째 줄은 내가 확인.

나는 세션을 추가 한 이래로 많은 문제를 겪고있는 하나의 페이지를 가지고 있습니다. 페이지가 여전히 올바르게 올랐지 만 DDL에서 새 영역을 선택하면 내 관심을 잃어 버렸고 세션 체크의 잘못된 부분으로 포스트 백이 표시됩니다.

내가 debuged 그리고 내가 본 것처럼 DDL 일 뿐이며 내가 볼 수없는 다른 문제가있을 수 있습니까?

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 그냥 staic 기능을 가진 DDL을 채우는 것입니다 : 이것은 .cs 파일의 코드가

<td><asp:DropDownList ID="ddlAreasSearch" runat="server" /></td> 

입니다 :

은에서 .aspx 파일의 코드입니다 :

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에 관련된 데이터를 얻을 버튼 클릭에 도착하지 않는 세션이

10 배

+0

당신은 코드를 게시 할 수 을 통해이 페이지로 이동합니다. 세션이 올바르게 유지되거나 여전히 손실 된 경우이 페이지의 드롭 다운에 댓글을 달아도 확인할 수 있습니까? – InSane

+0

요청한 부분의 마지막 부분을 이해하지 못했지만 내가 그랬다면, 내가 세션을 확인하지 않을 때 페이지가 잘 작동하고 ... 그리고 다른 코드를 위해서 ... 나는 그것을 게시하고있다. ... 10x – Erez

+0

내가 물어 보려던 것은 SearchAreasWithDDL.aspx에서 드롭 다운을 제거한 다음이 페이지에서 다른 페이지로 이동하면 세션이 계속 유지 되나요? 참조 - 내가 무엇을 확인하려고하는지는 문제가 실제로 드롭 다운과 관련이 있는지 없는지입니다. 어쩌면 SearchAreasWithDDL.aspx의 전체 코드를 업로드하여 링크를 게시 할 수 있습니다. 도움이 될 것입니다 !! – InSane

답변

0

.... 내가 포스트 백 페이지의 pageload를 입력하기 전에 죽으면 내가 발견 한 솔루션, 문제는

  1. 는 내가하는 LinkButton이 EXIT에 리디렉션을 가지고 ...이 두 가지의 렸기 때문에되었으며, DDL의 렸기 때문에 아니었고 내가 거기에 URL을 사용하고 일부 코드 CS 파일에서 btnClick URL은 aspx에서 URL을 제거했을 때 CS 파일에서 강해졌지만 확인 버튼과 보안 문제가 있으며 무료 URL 경로를 쓰고 있습니다. 그래서이 문제를 해결하기 위해이 선들을 사용했는데 모든 것이 훌륭하게 작동합니다 ...

    Response.Buffer = true; Response.ExpiresAbsolute = DateTime.Now.AddDays (-1d); Response.Expires = -1500; Response.CacheControl = "no-cache"; if (! EmployeeSession.IsAuthenticated || EmployeeSession.GetEmployeeType! = 1 & & EmployeeSession.GetEmployeeType! = 2) Response.Redirect ("기본값.영문 ");

    그 선이 브라우저에서 모두 HTTP 1.0 및 1.1 그래서이 작동합니다 대한 프록시의 페이지를 캐싱 중지

...

10 배

관련 문제