basepage class problems.

Mar 8 2009 11:29 PM
HTML clipboard

 

 

 

Explanation:

This application was handed to me to cleanup and have it run in Net 2.0 framework. The original application had no code-behind files but used the single file method like ASP classic with <%  and %>. C# re-usable functions where used in every page with a virtual include. One include that was done at the top of each page with this line <!-- #include virtual="includes/global.aspx" -->. This contained C# code. What I am trying to do is change this to code behind. I have created a basepage class.

The problem is I can't get things to work as they should. I am getting a few errors. This all used to be in the same single file and now I am trying to separate what used to be a virtual include global.aspx code into a baseclass and then have all the code behinds in the application use that when the page runs. Anyone have any ideas? I know I am missing something. The code for and example page like default.aspx and the basepage class are listed below.

 

 

 

Default.aspx:

Errors:
the name
'G_site' does not exist in the current context.

 

 

public partial class _Default : BasePage

{

private void Page_Load(object sender, EventArgs e)

{

 

// ==============================================================

LoadGlobals(sender, e);

string chk = (string)Session["loginchk"];

String loginType = "";

HttpCookie cookie = Request.Cookies["LoginType"];

 

if (null != cookie)

{

loginType = cookie.Value.ToString();

}

 

if ((chk == "admin") || (loginType == "Administrator"))

{

Response.Redirect("admin.aspx", true);

}

 

 

 

if ((chk == "power") || (loginType == "PowerUser"))

{

Response.Redirect("poweruser.aspx", true);

}

 

 

if ((chk == "publisher") || (loginType == "Publisher"))

{

Response.Redirect("publisher.aspx", true);

}

 

 

if (loginType == "Consortia")

{

Response.Redirect("Consortia.aspx", true);

}

 

 

if (loginType == "Site")

{

Response.Redirect("Usage.aspx", true);

}

 

 

if (string.Compare(G_site.site_id, string.Empty) != 0) ------- ERROR = the name 'G_site' does not exist in the current context.

{ // site

Response.Redirect("Usage.aspx");

}

 

else

{

Response.Redirect("Consortia.aspx");

}

// ==============================================================

 

 

 

} // END protected void Page_Load(object sender, EventArgs e)

 

 

 

 

 

} //END public partial class _Default : BasePage







 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BasePage.cs:

 

 

public class BasePage : System.Web.UI.Page

{

 

protected override void OnLoad(EventArgs e)

{

// ... add custom logic here ...

 

 

// Be sure to call the base class's OnLoad method!

base.OnLoad(e);

}



 

 

 

 

// BEGIN GLOBAL - The following was loaded with a virtual include  <!-- #include virtual="includes/global.aspx" -->  in the original application.

struct Site

{

public string site_id;

public string group_id;

public string consortia_id;

public string name;

public string publisher;

};

 

Site G_site;

 

string G_title;

string G_conn_string = "User ID=xxxxx;Password=xxxxxxxx;database=Net;server=york.xxxxx.com;Connection Timeout=60;";

 

 

 

public void LoadGlobals(Object sender, EventArgs e)

{

SqlConnection conAIP;

SqlCommand cmdSelect;

SqlDataReader dtrAccessControl;

SqlDataReader dtrConsortia;

SqlDataReader dtrSite;

SqlDataReader dtrGroup;

SqlDataReader dtrPublisher;

G_site.site_id = "";

G_site.name = "";

G_site.group_id = "";

G_site.publisher = "";

conAIP = new SqlConnection(G_conn_string);

try

{

conAIP.Open();

if (User.Identity.IsAuthenticated)

{

cmdSelect = new SqlCommand("select site_id from AIPSite_Access_Control where user_id = '" + User.Identity.Name + "'", conAIP);

dtrAccessControl = cmdSelect.ExecuteReader();

while (dtrAccessControl.Read())

{

G_site.site_id = dtrAccessControl["site_id"].ToString();

}

dtrAccessControl.Close();

 

 

 

if ((string.Compare(G_site.site_id, string.Empty) != 0) && (((string)Session["loginchk"]) != "publisher"))

{ // site

cmdSelect = new SqlCommand("select site_name from AIPSites where site_id = '" + G_site.site_id + "'", conAIP);

dtrSite = cmdSelect.ExecuteReader();

while (dtrSite.Read())

{

G_site.name = dtrSite["site_name"].ToString();

}

dtrSite.Close();

 

 

 

cmdSelect = new SqlCommand("select group_id from AIPGroup_Members where site_id = '" + G_site.site_id + "'", conAIP);

dtrGroup = cmdSelect.ExecuteReader();

while (dtrGroup.Read())

{

G_site.group_id = dtrGroup["group_id"].ToString();

}

dtrGroup.Close();

}

 

else

{ // consortia

cmdSelect = new SqlCommand("select consortium_id from AIPConsortia_Access_Control where user_id = '" + User.Identity.Name +

"'", conAIP);

dtrAccessControl = cmdSelect.ExecuteReader();

while (dtrAccessControl.Read())

{

G_site.consortia_id = dtrAccessControl["consortium_id"].ToString();

}

dtrAccessControl.Close();

 

 

 

cmdSelect = new SqlCommand("select consortium_name from AIPConsortia where consortium_id = '" + G_site.consortia_id + "'",

conAIP);

dtrConsortia = cmdSelect.ExecuteReader();

while (dtrConsortia.Read())

{

G_site.name = dtrConsortia["consortium_name"].ToString();

}

dtrConsortia.Close();

 

 

cmdSelect = new SqlCommand("select publisher from AIPPublisher_Access_Control where user_id = '" + User.Identity.Name +

"'", conAIP);

dtrPublisher = cmdSelect.ExecuteReader();

while (dtrPublisher.Read())

{

G_site.publisher = dtrPublisher["publisher"].ToString();

Response.Write("<!-- pub lookup:" + G_site.publisher + " -->");

}

dtrPublisher.Close();

 

 

} // END Else ((string.Compare(G_site.site_id, string.Empty)

} // END if (User.Identity.IsAuthenticated)

} // END try

 

catch (Exception ex)

{

//Response.Write("<!-- exception: " + ex.Message + " -->");

}

finally

{

conAIP.Close();

}

Response.Write("<!-- user=" + User.Identity.Name + ";publisher=" + G_site.publisher + "; site_id=" + G_site.site_id + " -->");

 

}

// END GLOBAL

 

 

 

 

 

 

} // END public class BasePage : System.Web.UI.Page

 

 

 

 

 

 

 

 

 

 


Answers (2)