2012-09-08 4 views
1
public partial class Page1 :System.Web.UI.Page 
{ 
     public static LGDP.LDGPSession var1 = null; 

     private void Login(this, EventArgs e) 
     { 
      var1 = new LGDPSession(this, data, data); 
     } 

     public bool IsLoggedIn() 
     { 
      bool login = false; 

      if (var1 != null) 
      { 
       login = true; 
      } 

      return var1; 
     } 
} 

Page2.apsx에서 Page1 정적 var1 또는 함수 IsLoggedIn()에 액세스하려면 어떻게합니까?aspx 페이지의 정적 변수에 액세스

public partial class Page2 :System.Web.UI.Page 
{ 
     Page1.(nothing shows up here) 
} 

답변 ----- 별도의 클래스를 생성 pageload/포스트 백

private static bool _login = false; 

public static void SetLoggedIn(object lgdps) 
{ 
    if (lgdps == null) 
    { 
     _login = false; 
    } 

    if (lgdps != null) 
    { 
     _login = true; 
    } 
} 

public static bool IsLogin 
{ 
    get { return _login; } 
} 
+0

에서 상속 할 때 당신이 당신 페이지에서 IsLoggedIn에 액세스 할 수 있습니다 같은 두 페이지입니다 네임 스페이스? – Oded

+0

ISLoggedIn에 액세스하려면 개체 만들기가 필요합니다. 페이지 1 –

+1

세션 변수를 정적 변수에 저장 하시겠습니까? 정적 변수는 appdomain에서 공유되므로 모든 사람이 LGDPSession을보고/사용/업데이트/생성 할 수 있습니다. –

답변

0

그것은 그 안에 당신의 기능을 가진 기본 클래스를 생성하는 것이 좋습니다 :

public class BasePage : Page 
{  
     public bool IsLoggedIn() 
     { 
      bool login = false; 

      if (var1 != null) 
      { 
       login = true; 
      } 
     } 

} 

을 그리고 당신은 BasePage

public partial class Page1 : BasePage 
{ 
} 

public partial class Page2 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(IsLoggedIn()) 
     { 
     } 
    } 
} 
+0

aspx.cs 페이지 대신 class.cs에 로그인 및 단일 세션 변수를 넣는 것과 같은 것이 아닌가? 지금은 aspx.cs 페이지 수준에서 웹 응용 프로그램 내에서 최상위 계층 구조를 유지하기 위해 로그인하고 있습니다 ...이 작업을 계속 수행하고 싶지만 다른 aspx.cs 페이지에서 알 수 있습니까? 첫 번째 페이지가 로그인되어 있는지 여부 (단 하나의 로그인 세션 만 항상 유지하려고합니다). – CraigJSte

+0

@Erwin ...이 질문에 대한 답변을 시도했지만 작동하지 않습니다 ... 아직 http://stackoverflow.com/questions/2445155/can-i-access-viewstate-of-one-page-in-another -page-in-asp-net? rq = 1 – CraigJSte

+1

당신이 맞았 어. ViewState 또는 Current.Item.Add 등으로 혼란스러워하는 것이 너무 번거롭고 작동하지 않는다. 별도의 클래스를 만들었다. ..! (왜 내가 그 ??? ???) 위의 클래스를 보여주는 생각하지 않았다 .... – CraigJSte

3

컴파일되지 않습니다 Page1에있는 당신의 기능 IsLoggedIn 공공 VAR 접근.

public bool IsLoggedIn() 
{ 
    bool login = false; 

    if (var1 != null) 
    { 
    login = true; 
    } 

    return login; 
} 

또는 단순히 : 페이지가 컴파일

public bool IsLoggedIn() 
{ 
    return var1 != null; 
} 

되면, 회원은 인텔리에 표시해야한다 그것은 무언가를 반환해야합니다.

관련 문제