By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,925 Members | 732 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,925 IT Pros & Developers. It's quick & easy.

Session Variables Disappearing

P: n/a
Hello,

I am trying to develop a book tracking application for my capstone in
school, and am running into a problem.

The application is an ASP.Net application written in C#. The first page you
go to is a login form, which will set several session variables with the
name used to log in, appropriate security level and some other misc
variables, and then will go to a main menu for each particular security
level using Server.Transfer. Each main menu contains a user control at the
top showing the security level you are logged in as and the username that
you are logged in as.

From here, if I try to utilize a menu item (either hyperlink or a button
that uses Server.Transfer again) to go to a different page, the session
variables no longer seem to exist. For example, one such page goes to a
password change page, and also includes the same user control that the main
menu has at the top, however it doesn't list the information in the session
variables. In fact, it only shows part of the textual part as well. The
actual page itself uses another user control (basically a table with a few
fields on it) that calls a session variable, and that one doesn't show up
either.

I don't receive any errors, there just isn't anything that appears in these
fields. Each page has sessions enabled. If you have any suggestions,
PLEASE let me know!

If you would like to see what happens, take a look at
http://www.st-onge.org/class/dev/booktrack/default.aspx and use
tadmin/tadmin for the username/password. Right now the menu contains just a
button that is unlabeled, but that takes you to the password change utility.

Thanks in advance,
Paul
Nov 15 '05 #1
Share this Question
Share on Google+
14 Replies


P: n/a
Hi Paul,

I don't receive any errors, there just isn't anything that appears in these
fields. Each page has sessions enabled. If you have any suggestions,
PLEASE let me know!


You mentioned each page had session enabled. Is there a chance the
session is disabled in web.config? What does your <sessionState> element
look like?

Also, do you happen to have a <pages> element in web.config that
disables the session state for certain files?

Also, how do you cast values you read from the Session object?

--
Milan Negovan
www.AspNetResources.com
Essential recources for ASP.NET developers
Nov 15 '05 #2

P: n/a
Hello!

The session state information in the web.config is as follows:

<sessionState

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

There is no <pages> element in the Web.config. I want to have the session
variables be available to all of the pages in the project.

Most of the variables that are in the session state are strings, so I use
(string) to cast them. For example, in the status bar user control, I use:
lblUserName.Text="Logged in using: " + Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);

The first line accesses the session directly, and uses ToString() to get the
info. The second line I am casting it to an integer to throw into the
function. The funny thing with these and the status bar is once it logs on
and takes you to the menu, all of the info is currect, however if I move
past that, the first line produces 'Logged in using:' and that is it, while
the second line produces absolutely nothing.

Thanks for your help!

Paul

"Milan Negovan" <sa***@northpole.net> wrote in message
news:TX**********************@news4.srv.hcvlny.cv. net...
Hi Paul,

I don't receive any errors, there just isn't anything that appears in these fields. Each page has sessions enabled. If you have any suggestions,
PLEASE let me know!


You mentioned each page had session enabled. Is there a chance the
session is disabled in web.config? What does your <sessionState> element
look like?

Also, do you happen to have a <pages> element in web.config that
disables the session state for certain files?

Also, how do you cast values you read from the Session object?

--
Milan Negovan
www.AspNetResources.com
Essential recources for ASP.NET developers

Nov 15 '05 #3

P: n/a
you have custom controls on that page? custom controls cannot directly
access session, you need to first get a reference to the session object from
httpcontext.current.

If that still doesn't work, you will need to put code to display the session
variable in the page load and troubleshoot from there

if(Session["UserName"]!= null)
Response.Write("<script>alert('" + Session["UserName"].ToString() +
"')</script>");

should display something
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:-s********************@giganews.com...
Hello!

The session state information in the web.config is as follows:

<sessionState

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

There is no <pages> element in the Web.config. I want to have the session
variables be available to all of the pages in the project.

Most of the variables that are in the session state are strings, so I use
(string) to cast them. For example, in the status bar user control, I use: lblUserName.Text="Logged in using: " + Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);

The first line accesses the session directly, and uses ToString() to get the info. The second line I am casting it to an integer to throw into the
function. The funny thing with these and the status bar is once it logs on and takes you to the menu, all of the info is currect, however if I move
past that, the first line produces 'Logged in using:' and that is it, while the second line produces absolutely nothing.

Thanks for your help!

Paul

"Milan Negovan" <sa***@northpole.net> wrote in message
news:TX**********************@news4.srv.hcvlny.cv. net...
Hi Paul,

I don't receive any errors, there just isn't anything that appears in these fields. Each page has sessions enabled. If you have any suggestions,
PLEASE let me know!


You mentioned each page had session enabled. Is there a chance the
session is disabled in web.config? What does your <sessionState> element
look like?

Also, do you happen to have a <pages> element in web.config that
disables the session state for certain files?

Also, how do you cast values you read from the Session object?

--
Milan Negovan
www.AspNetResources.com
Essential recources for ASP.NET developers


Nov 15 '05 #4

P: n/a
Thanks for the suggestion! I do have one question though, that being the
case, why does it work once, but not once I move on from that page?

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:ew**************@tk2msftngp13.phx.gbl...
you have custom controls on that page? custom controls cannot directly
access session, you need to first get a reference to the session object from httpcontext.current.

If that still doesn't work, you will need to put code to display the session variable in the page load and troubleshoot from there

if(Session["UserName"]!= null)
Response.Write("<script>alert('" + Session["UserName"].ToString() +
"')</script>");

should display something
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:-s********************@giganews.com...
Hello!

The session state information in the web.config is as follows:

<sessionState

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

There is no <pages> element in the Web.config. I want to have the session variables be available to all of the pages in the project.

Most of the variables that are in the session state are strings, so I use (string) to cast them. For example, in the status bar user control, I

use:
lblUserName.Text="Logged in using: " + Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);

The first line accesses the session directly, and uses ToString() to get

the
info. The second line I am casting it to an integer to throw into the
function. The funny thing with these and the status bar is once it logs

on
and takes you to the menu, all of the info is currect, however if I move
past that, the first line produces 'Logged in using:' and that is it,

while
the second line produces absolutely nothing.

Thanks for your help!

Paul

"Milan Negovan" <sa***@northpole.net> wrote in message
news:TX**********************@news4.srv.hcvlny.cv. net...
Hi Paul,
> I don't receive any errors, there just isn't anything that appears in
these
> fields. Each page has sessions enabled. If you have any

suggestions, > PLEASE let me know!

You mentioned each page had session enabled. Is there a chance the
session is disabled in web.config? What does your <sessionState> element look like?

Also, do you happen to have a <pages> element in web.config that
disables the session state for certain files?

Also, how do you cast values you read from the Session object?

--
Milan Negovan
www.AspNetResources.com
Essential recources for ASP.NET developers



Nov 15 '05 #5

P: n/a
i really have no idea. if you can't figure this out, i 'd be happy to look
at the code

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Ae********************@giganews.com...
Thanks for the suggestion! I do have one question though, that being the
case, why does it work once, but not once I move on from that page?

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:ew**************@tk2msftngp13.phx.gbl...
you have custom controls on that page? custom controls cannot directly
access session, you need to first get a reference to the session object

from
httpcontext.current.

If that still doesn't work, you will need to put code to display the

session
variable in the page load and troubleshoot from there

if(Session["UserName"]!= null)
Response.Write("<script>alert('" + Session["UserName"].ToString() +
"')</script>");

should display something
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:-s********************@giganews.com...
Hello!

The session state information in the web.config is as follows:

<sessionState

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

There is no <pages> element in the Web.config. I want to have the session variables be available to all of the pages in the project.

Most of the variables that are in the session state are strings, so I use (string) to cast them. For example, in the status bar user control, I

use:
lblUserName.Text="Logged in using: " + Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);

The first line accesses the session directly, and uses ToString() to get
the
info. The second line I am casting it to an integer to throw into the
function. The funny thing with these and the status bar is once it
logs
on
and takes you to the menu, all of the info is currect, however if I

move past that, the first line produces 'Logged in using:' and that is it,

while
the second line produces absolutely nothing.

Thanks for your help!

Paul

"Milan Negovan" <sa***@northpole.net> wrote in message
news:TX**********************@news4.srv.hcvlny.cv. net...
> Hi Paul,
>
>
> > I don't receive any errors, there just isn't anything that appears

in these
> > fields. Each page has sessions enabled. If you have any suggestions, > > PLEASE let me know!
>
> You mentioned each page had session enabled. Is there a chance the
> session is disabled in web.config? What does your <sessionState> element > look like?
>
> Also, do you happen to have a <pages> element in web.config that
> disables the session state for certain files?
>
> Also, how do you cast values you read from the Session object?
>
> --
> Milan Negovan
> www.AspNetResources.com
> Essential recources for ASP.NET developers



Nov 15 '05 #6

P: n/a
I may have to have you do that if you are willing...

Some more info..

From the login form (a form with a user control), the user control sets the
session variables. Using Server.Transfer, I move to another page, the main
menu. This has a user control (the user status info) which pulls the
session variables fine. I inserted a label just to pull the information
from a session variable, and that works. The button on the form, which uses
a Server.Transfer to go to another page with a user control to change the
password, is where things break. The same control on the main menu that
produced info, no longer works. The other user control on that page,
doesn't work either, nor does the same process to get session information
prior.

I think I am just doing something stupid here...

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:On**************@TK2MSFTNGP09.phx.gbl...
i really have no idea. if you can't figure this out, i 'd be happy to look
at the code

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Ae********************@giganews.com...
Thanks for the suggestion! I do have one question though, that being the
case, why does it work once, but not once I move on from that page?

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:ew**************@tk2msftngp13.phx.gbl...
you have custom controls on that page? custom controls cannot directly
access session, you need to first get a reference to the session object
from
httpcontext.current.

If that still doesn't work, you will need to put code to display the

session
variable in the page load and troubleshoot from there

if(Session["UserName"]!= null)
Response.Write("<script>alert('" + Session["UserName"].ToString()
+ "')</script>");

should display something
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:-s********************@giganews.com...
> Hello!
>
> The session state information in the web.config is as follows:
>
> <sessionState
>
> mode="InProc"
>
> stateConnectionString="tcpip=127.0.0.1:42424"
>
> sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
>
> cookieless="false"
>
> timeout="20"
>
> />
>
> There is no <pages> element in the Web.config. I want to have the

session
> variables be available to all of the pages in the project.
>
> Most of the variables that are in the session state are strings, so I use
> (string) to cast them. For example, in the status bar user control,
I use:
> lblUserName.Text="Logged in using: " + Session["UserName"].ToString(); >
> lblSecurity.Text="Security Level: " +
> Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
>
> The first line accesses the session directly, and uses ToString() to

get the
> info. The second line I am casting it to an integer to throw into the > function. The funny thing with these and the status bar is once it logs on
> and takes you to the menu, all of the info is currect, however if I move > past that, the first line produces 'Logged in using:' and that is it, while
> the second line produces absolutely nothing.
>
> Thanks for your help!
>
> Paul
>
>
>
> "Milan Negovan" <sa***@northpole.net> wrote in message
> news:TX**********************@news4.srv.hcvlny.cv. net...
> > Hi Paul,
> >
> >
> > > I don't receive any errors, there just isn't anything that

appears in
> these
> > > fields. Each page has sessions enabled. If you have any

suggestions,
> > > PLEASE let me know!
> >
> > You mentioned each page had session enabled. Is there a chance the
> > session is disabled in web.config? What does your <sessionState>

element
> > look like?
> >
> > Also, do you happen to have a <pages> element in web.config that
> > disables the session state for certain files?
> >
> > Also, how do you cast values you read from the Session object?
> >
> > --
> > Milan Negovan
> > www.AspNetResources.com
> > Essential recources for ASP.NET developers
>
>



Nov 15 '05 #7

P: n/a
I should also mention I tried using httpcontext too, same thing...
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:On**************@TK2MSFTNGP09.phx.gbl...
i really have no idea. if you can't figure this out, i 'd be happy to look
at the code

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Ae********************@giganews.com...
Thanks for the suggestion! I do have one question though, that being the
case, why does it work once, but not once I move on from that page?

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:ew**************@tk2msftngp13.phx.gbl...
you have custom controls on that page? custom controls cannot directly
access session, you need to first get a reference to the session object
from
httpcontext.current.

If that still doesn't work, you will need to put code to display the

session
variable in the page load and troubleshoot from there

if(Session["UserName"]!= null)
Response.Write("<script>alert('" + Session["UserName"].ToString()
+ "')</script>");

should display something
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:-s********************@giganews.com...
> Hello!
>
> The session state information in the web.config is as follows:
>
> <sessionState
>
> mode="InProc"
>
> stateConnectionString="tcpip=127.0.0.1:42424"
>
> sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
>
> cookieless="false"
>
> timeout="20"
>
> />
>
> There is no <pages> element in the Web.config. I want to have the

session
> variables be available to all of the pages in the project.
>
> Most of the variables that are in the session state are strings, so I use
> (string) to cast them. For example, in the status bar user control,
I use:
> lblUserName.Text="Logged in using: " + Session["UserName"].ToString(); >
> lblSecurity.Text="Security Level: " +
> Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
>
> The first line accesses the session directly, and uses ToString() to

get the
> info. The second line I am casting it to an integer to throw into the > function. The funny thing with these and the status bar is once it logs on
> and takes you to the menu, all of the info is currect, however if I move > past that, the first line produces 'Logged in using:' and that is it, while
> the second line produces absolutely nothing.
>
> Thanks for your help!
>
> Paul
>
>
>
> "Milan Negovan" <sa***@northpole.net> wrote in message
> news:TX**********************@news4.srv.hcvlny.cv. net...
> > Hi Paul,
> >
> >
> > > I don't receive any errors, there just isn't anything that

appears in
> these
> > > fields. Each page has sessions enabled. If you have any

suggestions,
> > > PLEASE let me know!
> >
> > You mentioned each page had session enabled. Is there a chance the
> > session is disabled in web.config? What does your <sessionState>

element
> > look like?
> >
> > Also, do you happen to have a <pages> element in web.config that
> > disables the session state for certain files?
> >
> > Also, how do you cast values you read from the Session object?
> >
> > --
> > Milan Negovan
> > www.AspNetResources.com
> > Essential recources for ASP.NET developers
>
>



Nov 15 '05 #8

P: n/a
Sure, post the code which reproduces the problem.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Gp********************@giganews.com...
I should also mention I tried using httpcontext too, same thing...
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:On**************@TK2MSFTNGP09.phx.gbl...
i really have no idea. if you can't figure this out, i 'd be happy to look
at the code

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Ae********************@giganews.com...
Thanks for the suggestion! I do have one question though, that being the case, why does it work once, but not once I move on from that page?

Thanks
Paul
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:ew**************@tk2msftngp13.phx.gbl...
> you have custom controls on that page? custom controls cannot directly > access session, you need to first get a reference to the session object from
> httpcontext.current.
>
> If that still doesn't work, you will need to put code to display the
session
> variable in the page load and troubleshoot from there
>
> if(Session["UserName"]!= null)
> Response.Write("<script>alert('" + Session["UserName"].ToString()
+
> "')</script>");
>
> should display something
> --
> Regards,
> Alvin Bruney [ASP.NET MVP]
> Got tidbits? Get it here...
> http://tinyurl.com/3he3b
> "Paul Yanzick" <ya******@hotmail.com> wrote in message
> news:-s********************@giganews.com...
> > Hello!
> >
> > The session state information in the web.config is as follows:
> >
> > <sessionState
> >
> > mode="InProc"
> >
> > stateConnectionString="tcpip=127.0.0.1:42424"
> >
> > sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
> >
> > cookieless="false"
> >
> > timeout="20"
> >
> > />
> >
> > There is no <pages> element in the Web.config. I want to have the
session
> > variables be available to all of the pages in the project.
> >
> > Most of the variables that are in the session state are strings,
so
I use
> > (string) to cast them. For example, in the status bar user
control,
I > use:
> > lblUserName.Text="Logged in using: " + Session["UserName"].ToString(); > >
> > lblSecurity.Text="Security Level: " +
> > Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
> >
> > The first line accesses the session directly, and uses ToString()
to get
> the
> > info. The second line I am casting it to an integer to throw into the > > function. The funny thing with these and the status bar is once
it logs
> on
> > and takes you to the menu, all of the info is currect, however if
I move
> > past that, the first line produces 'Logged in using:' and that is

it, > while
> > the second line produces absolutely nothing.
> >
> > Thanks for your help!
> >
> > Paul
> >
> >
> >
> > "Milan Negovan" <sa***@northpole.net> wrote in message
> > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > Hi Paul,
> > >
> > >
> > > > I don't receive any errors, there just isn't anything that appears in
> > these
> > > > fields. Each page has sessions enabled. If you have any
suggestions,
> > > > PLEASE let me know!
> > >
> > > You mentioned each page had session enabled. Is there a chance

the > > > session is disabled in web.config? What does your <sessionState>
element
> > > look like?
> > >
> > > Also, do you happen to have a <pages> element in web.config that
> > > disables the session state for certain files?
> > >
> > > Also, how do you cast values you read from the Session object?
> > >
> > > --
> > > Milan Negovan
> > > www.AspNetResources.com
> > > Essential recources for ASP.NET developers
> >
> >
>
>



Nov 15 '05 #9

P: n/a
Sorry for the delay, I have tried posting the project as an attachment,
isn't working, so here is the code:

Default.aspx has no code, just the login control. Code is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.SessionState;

/// <summary>

/// Summary description for WebUserControl1.

/// </summary>

public class WebUserControl1 : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.TextBox txtUserName;

protected System.Web.UI.WebControls.TextBox txtPassword;

protected System.Web.UI.WebControls.Label txtError;

protected System.Web.UI.WebControls.Button btnCheckLogin;

private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

txtError.Text="";

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnCheckLogin.Click += new
System.EventHandler(this.btnCheckLogin_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnCheckLogin_Click(object sender, System.EventArgs e)

{

Auth Authentication = new Auth();

try

{

Session["UserID"]=Authentication.GetUserID(txtUserName.Text,txtPass word.Text
);

Session["SecurityLevel"]=Authentication.GetSecurityLevel((int)Session["UserI
D"]);

Session["UserName"]=txtUserName.Text;

Session["PassChange"]=txtUserName.Text;

txtError.Text="";

Server.Transfer(Authentication.GetMainMenu((int)Se ssion["SecurityLevel"]));

}

catch

{

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

txtError.Text="You have entered incorrect user login credentials, please try
again";

}

}

}

}

From there, they get sent to a menu based off of the function called in the
CheckLogin_Click function. The Auth class is just a class I am using for DB
connection items.

Depending on who you log in as, you go to a main menu (different menu
depending on your credentials). Each menu (right now) is a blank page, with
the LoginStatusBar user control, giving information as to who they are
logged in as. The code for the LoginStatusBar.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for LoginStatusBar.

/// </summary>

public class LoginStatusBar : System.Web.UI.UserControl

{

int LogOutFlag=0;

HttpContext current = HttpContext.Current;

Auth Authenticate = new Auth();

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.Button btnLogout;

protected System.Web.UI.WebControls.Label lblSecurity;

private void Page_Load(object sender, System.EventArgs e)

{

if(LogOutFlag==0)

{

try

{

lblUserName.Text="Logged in using: " +
current.Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)current.Ses sion["SecurityLevel"]);

}

catch

{

}

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnLogout_Click(object sender, System.EventArgs e)

{

LogOutFlag=1;

Server.Transfer("../Default.aspx");

}

}

}

Up to this point, everything works fine.

One of the menus, I created a button and have it using Server.Transfer to
move to a password change page. It again has the same login status bar,
however this is where things break. It will produce the 'Logged in using:"
piece, and that is it. The "Security Level:" piece never shows up. In the
main page, I created a label to get the session variable, and it produces
nothing. The code for the Password Change.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for PasswordChange.

/// </summary>

public class PasswordChange : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button btnChangePassword;

protected System.Web.UI.WebControls.Label Label4;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.TextBox txtConfirmPassword;

protected System.Web.UI.WebControls.TextBox txtNewPassword;

protected System.Web.UI.WebControls.TextBox txtOldPassword;

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.CompareValidator vldNewPass;

Auth Authenticate = new Auth();

private void Page_Load(object sender, System.EventArgs e)

{

lblUserName.Text=Session["UserName"].ToString();

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnChangePassword.Click += new
System.EventHandler(this.btnChangePassword_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnChangePassword_Click(object sender, System.EventArgs e)

{

try

{

if((bool)Authenticate.ChangePassword((string)Sessi on["UserName"],txtOldPassw
ord.Text,txtNewPassword.Text))

{

Server.Transfer(Authenticate.GetMainMenu((int)Sess ion["SecurityLevel"]));

}

}

catch

{

}
}

}

}

If you need any more info, please let me know.

Paul

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:es**************@TK2MSFTNGP12.phx.gbl...
Sure, post the code which reproduces the problem.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Gp********************@giganews.com...
I should also mention I tried using httpcontext too, same thing...
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:On**************@TK2MSFTNGP09.phx.gbl...
i really have no idea. if you can't figure this out, i 'd be happy to look at the code

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Ae********************@giganews.com...
> Thanks for the suggestion! I do have one question though, that being
the
> case, why does it work once, but not once I move on from that page?
>
> Thanks
> Paul
> "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in
message > news:ew**************@tk2msftngp13.phx.gbl...
> > you have custom controls on that page? custom controls cannot directly > > access session, you need to first get a reference to the session object
> from
> > httpcontext.current.
> >
> > If that still doesn't work, you will need to put code to display the > session
> > variable in the page load and troubleshoot from there
> >
> > if(Session["UserName"]!= null)
> > Response.Write("<script>alert('" + Session["UserName"].ToString()
+
> > "')</script>");
> >
> > should display something
> > --
> > Regards,
> > Alvin Bruney [ASP.NET MVP]
> > Got tidbits? Get it here...
> > http://tinyurl.com/3he3b
> > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > news:-s********************@giganews.com...
> > > Hello!
> > >
> > > The session state information in the web.config is as follows:
> > >
> > > <sessionState
> > >
> > > mode="InProc"
> > >
> > > stateConnectionString="tcpip=127.0.0.1:42424"
> > >
> > > sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" > > >
> > > cookieless="false"
> > >
> > > timeout="20"
> > >
> > > />
> > >
> > > There is no <pages> element in the Web.config. I want to have the > session
> > > variables be available to all of the pages in the project.
> > >
> > > Most of the variables that are in the session state are strings,

so
I
> use
> > > (string) to cast them. For example, in the status bar user

control,
I
> > use:
> > > lblUserName.Text="Logged in using: " +

Session["UserName"].ToString();
> > >
> > > lblSecurity.Text="Security Level: " +
> > > Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]); > > >
> > > The first line accesses the session directly, and uses ToString() to get
> > the
> > > info. The second line I am casting it to an integer to throw
into the
> > > function. The funny thing with these and the status bar is once it logs
> > on
> > > and takes you to the menu, all of the info is currect, however
if
I move
> > > past that, the first line produces 'Logged in using:' and that
is it,
> > while
> > > the second line produces absolutely nothing.
> > >
> > > Thanks for your help!
> > >
> > > Paul
> > >
> > >
> > >
> > > "Milan Negovan" <sa***@northpole.net> wrote in message
> > > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > > Hi Paul,
> > > >
> > > >
> > > > > I don't receive any errors, there just isn't anything that

appears
> in
> > > these
> > > > > fields. Each page has sessions enabled. If you have any
> suggestions,
> > > > > PLEASE let me know!
> > > >
> > > > You mentioned each page had session enabled. Is there a chance

the > > > > session is disabled in web.config? What does your

<sessionState> > element
> > > > look like?
> > > >
> > > > Also, do you happen to have a <pages> element in web.config that > > > > disables the session state for certain files?
> > > >
> > > > Also, how do you cast values you read from the Session object?
> > > >
> > > > --
> > > > Milan Negovan
> > > > www.AspNetResources.com
> > > > Essential recources for ASP.NET developers
> > >
> > >
> >
> >
>
>



Nov 15 '05 #10

P: n/a
Your class for your webform does not descend from UI page. What's the reason
for this?
Example:

public class WebForm1 : System.Web.UI.Page
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:X8********************@giganews.com...
Sorry for the delay, I have tried posting the project as an attachment,
isn't working, so here is the code:

Default.aspx has no code, just the login control. Code is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.SessionState;

/// <summary>

/// Summary description for WebUserControl1.

/// </summary>

public class WebUserControl1 : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.TextBox txtUserName;

protected System.Web.UI.WebControls.TextBox txtPassword;

protected System.Web.UI.WebControls.Label txtError;

protected System.Web.UI.WebControls.Button btnCheckLogin;

private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

txtError.Text="";

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnCheckLogin.Click += new
System.EventHandler(this.btnCheckLogin_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnCheckLogin_Click(object sender, System.EventArgs e)

{

Auth Authentication = new Auth();

try

{

Session["UserID"]=Authentication.GetUserID(txtUserName.Text,txtPass word.Text );

Session["SecurityLevel"]=Authentication.GetSecurityLevel((int)Session["UserI D"]);

Session["UserName"]=txtUserName.Text;

Session["PassChange"]=txtUserName.Text;

txtError.Text="";

Server.Transfer(Authentication.GetMainMenu((int)Se ssion["SecurityLevel"]));
}

catch

{

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

txtError.Text="You have entered incorrect user login credentials, please try again";

}

}

}

}

From there, they get sent to a menu based off of the function called in the CheckLogin_Click function. The Auth class is just a class I am using for DB connection items.

Depending on who you log in as, you go to a main menu (different menu
depending on your credentials). Each menu (right now) is a blank page, with the LoginStatusBar user control, giving information as to who they are
logged in as. The code for the LoginStatusBar.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for LoginStatusBar.

/// </summary>

public class LoginStatusBar : System.Web.UI.UserControl

{

int LogOutFlag=0;

HttpContext current = HttpContext.Current;

Auth Authenticate = new Auth();

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.Button btnLogout;

protected System.Web.UI.WebControls.Label lblSecurity;

private void Page_Load(object sender, System.EventArgs e)

{

if(LogOutFlag==0)

{

try

{

lblUserName.Text="Logged in using: " +
current.Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)current.Ses sion["SecurityLevel"]);

}

catch

{

}

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnLogout_Click(object sender, System.EventArgs e)

{

LogOutFlag=1;

Server.Transfer("../Default.aspx");

}

}

}

Up to this point, everything works fine.

One of the menus, I created a button and have it using Server.Transfer to
move to a password change page. It again has the same login status bar,
however this is where things break. It will produce the 'Logged in using:" piece, and that is it. The "Security Level:" piece never shows up. In the main page, I created a label to get the session variable, and it produces
nothing. The code for the Password Change.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for PasswordChange.

/// </summary>

public class PasswordChange : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button btnChangePassword;

protected System.Web.UI.WebControls.Label Label4;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.TextBox txtConfirmPassword;

protected System.Web.UI.WebControls.TextBox txtNewPassword;

protected System.Web.UI.WebControls.TextBox txtOldPassword;

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.CompareValidator vldNewPass;

Auth Authenticate = new Auth();

private void Page_Load(object sender, System.EventArgs e)

{

lblUserName.Text=Session["UserName"].ToString();

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnChangePassword.Click += new
System.EventHandler(this.btnChangePassword_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnChangePassword_Click(object sender, System.EventArgs e)

{

try

{

if((bool)Authenticate.ChangePassword((string)Sessi on["UserName"],txtOldPassw ord.Text,txtNewPassword.Text))

{

Server.Transfer(Authenticate.GetMainMenu((int)Sess ion["SecurityLevel"]));

}

}

catch

{

}
}

}

}

If you need any more info, please let me know.

Paul

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:es**************@TK2MSFTNGP12.phx.gbl...
Sure, post the code which reproduces the problem.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Gp********************@giganews.com...
I should also mention I tried using httpcontext too, same thing...
"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:On**************@TK2MSFTNGP09.phx.gbl...
> i really have no idea. if you can't figure this out, i 'd be happy to
look
> at the code
>
> --
> Regards,
> Alvin Bruney [ASP.NET MVP]
> Got tidbits? Get it here...
> http://tinyurl.com/3he3b
> "Paul Yanzick" <ya******@hotmail.com> wrote in message
> news:Ae********************@giganews.com...
> > Thanks for the suggestion! I do have one question though, that being the
> > case, why does it work once, but not once I move on from that
page? > >
> > Thanks
> > Paul
> > "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message > > news:ew**************@tk2msftngp13.phx.gbl...
> > > you have custom controls on that page? custom controls cannot

directly
> > > access session, you need to first get a reference to the session
object
> > from
> > > httpcontext.current.
> > >
> > > If that still doesn't work, you will need to put code to display the > > session
> > > variable in the page load and troubleshoot from there
> > >
> > > if(Session["UserName"]!= null)
> > > Response.Write("<script>alert('" +

Session["UserName"].ToString()
+
> > > "')</script>");
> > >
> > > should display something
> > > --
> > > Regards,
> > > Alvin Bruney [ASP.NET MVP]
> > > Got tidbits? Get it here...
> > > http://tinyurl.com/3he3b
> > > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > > news:-s********************@giganews.com...
> > > > Hello!
> > > >
> > > > The session state information in the web.config is as follows:
> > > >
> > > > <sessionState
> > > >
> > > > mode="InProc"
> > > >
> > > > stateConnectionString="tcpip=127.0.0.1:42424"
> > > >
> > > > sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" > > > >
> > > > cookieless="false"
> > > >
> > > > timeout="20"
> > > >
> > > > />
> > > >
> > > > There is no <pages> element in the Web.config. I want to have the > > session
> > > > variables be available to all of the pages in the project.
> > > >
> > > > Most of the variables that are in the session state are strings, so
I
> > use
> > > > (string) to cast them. For example, in the status bar user

control,
I
> > > use:
> > > > lblUserName.Text="Logged in using: " +
Session["UserName"].ToString();
> > > >
> > > > lblSecurity.Text="Security Level: " +
> > > > Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]); > > > >
> > > > The first line accesses the session directly, and uses ToString()
to
> get
> > > the
> > > > info. The second line I am casting it to an integer to throw into the
> > > > function. The funny thing with these and the status bar is
once it
> logs
> > > on
> > > > and takes you to the menu, all of the info is currect, however if
I
> move
> > > > past that, the first line produces 'Logged in using:' and that

is it,
> > > while
> > > > the second line produces absolutely nothing.
> > > >
> > > > Thanks for your help!
> > > >
> > > > Paul
> > > >
> > > >
> > > >
> > > > "Milan Negovan" <sa***@northpole.net> wrote in message
> > > > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > > > Hi Paul,
> > > > >
> > > > >
> > > > > > I don't receive any errors, there just isn't anything that
appears
> > in
> > > > these
> > > > > > fields. Each page has sessions enabled. If you have any
> > suggestions,
> > > > > > PLEASE let me know!
> > > > >
> > > > > You mentioned each page had session enabled. Is there a
chance the
> > > > > session is disabled in web.config? What does your

<sessionState> > > element
> > > > > look like?
> > > > >
> > > > > Also, do you happen to have a <pages> element in web.config that > > > > > disables the session state for certain files?
> > > > >
> > > > > Also, how do you cast values you read from the Session

object? > > > > >
> > > > > --
> > > > > Milan Negovan
> > > > > www.AspNetResources.com
> > > > > Essential recources for ASP.NET developers
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Nov 15 '05 #11

P: n/a
There really isn't a reason.... In fact, I didn't change from the defaults.
Is this causing the issue?

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:um**************@TK2MSFTNGP12.phx.gbl...
Your class for your webform does not descend from UI page. What's the reason for this?
Example:

public class WebForm1 : System.Web.UI.Page
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:X8********************@giganews.com...
Sorry for the delay, I have tried posting the project as an attachment,
isn't working, so here is the code:

Default.aspx has no code, just the login control. Code is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.SessionState;

/// <summary>

/// Summary description for WebUserControl1.

/// </summary>

public class WebUserControl1 : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.TextBox txtUserName;

protected System.Web.UI.WebControls.TextBox txtPassword;

protected System.Web.UI.WebControls.Label txtError;

protected System.Web.UI.WebControls.Button btnCheckLogin;

private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

txtError.Text="";

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnCheckLogin.Click += new
System.EventHandler(this.btnCheckLogin_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnCheckLogin_Click(object sender, System.EventArgs e)

{

Auth Authentication = new Auth();

try

{

Session["UserID"]=Authentication.GetUserID(txtUserName.Text,txtPass word.Text
);

Session["SecurityLevel"]=Authentication.GetSecurityLevel((int)Session["UserI
D"]);

Session["UserName"]=txtUserName.Text;

Session["PassChange"]=txtUserName.Text;

txtError.Text="";

Server.Transfer(Authentication.GetMainMenu((int)Se ssion["SecurityLevel"]));

}

catch

{

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

txtError.Text="You have entered incorrect user login credentials, please

try
again";

}

}

}

}

From there, they get sent to a menu based off of the function called in

the
CheckLogin_Click function. The Auth class is just a class I am using for DB
connection items.

Depending on who you log in as, you go to a main menu (different menu
depending on your credentials). Each menu (right now) is a blank page,

with
the LoginStatusBar user control, giving information as to who they are
logged in as. The code for the LoginStatusBar.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for LoginStatusBar.

/// </summary>

public class LoginStatusBar : System.Web.UI.UserControl

{

int LogOutFlag=0;

HttpContext current = HttpContext.Current;

Auth Authenticate = new Auth();

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.Button btnLogout;

protected System.Web.UI.WebControls.Label lblSecurity;

private void Page_Load(object sender, System.EventArgs e)

{

if(LogOutFlag==0)

{

try

{

lblUserName.Text="Logged in using: " +
current.Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)current.Ses sion["SecurityLevel"]);
}

catch

{

}

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnLogout_Click(object sender, System.EventArgs e)

{

LogOutFlag=1;

Server.Transfer("../Default.aspx");

}

}

}

Up to this point, everything works fine.

One of the menus, I created a button and have it using Server.Transfer to move to a password change page. It again has the same login status bar,
however this is where things break. It will produce the 'Logged in

using:"
piece, and that is it. The "Security Level:" piece never shows up. In

the
main page, I created a label to get the session variable, and it produces nothing. The code for the Password Change.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for PasswordChange.

/// </summary>

public class PasswordChange : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button btnChangePassword;

protected System.Web.UI.WebControls.Label Label4;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.TextBox txtConfirmPassword;

protected System.Web.UI.WebControls.TextBox txtNewPassword;

protected System.Web.UI.WebControls.TextBox txtOldPassword;

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.CompareValidator vldNewPass;

Auth Authenticate = new Auth();

private void Page_Load(object sender, System.EventArgs e)

{

lblUserName.Text=Session["UserName"].ToString();

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnChangePassword.Click += new
System.EventHandler(this.btnChangePassword_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnChangePassword_Click(object sender, System.EventArgs e)

{

try

{

if((bool)Authenticate.ChangePassword((string)Sessi on["UserName"],txtOldPassw
ord.Text,txtNewPassword.Text))

{

Server.Transfer(Authenticate.GetMainMenu((int)Sess ion["SecurityLevel"]));
}

}

catch

{

}
}

}

}

If you need any more info, please let me know.

Paul

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:es**************@TK2MSFTNGP12.phx.gbl...
Sure, post the code which reproduces the problem.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Gp********************@giganews.com...
> I should also mention I tried using httpcontext too, same thing...
>
>
> "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message > news:On**************@TK2MSFTNGP09.phx.gbl...
> > i really have no idea. if you can't figure this out, i 'd be happy to look
> > at the code
> >
> > --
> > Regards,
> > Alvin Bruney [ASP.NET MVP]
> > Got tidbits? Get it here...
> > http://tinyurl.com/3he3b
> > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > news:Ae********************@giganews.com...
> > > Thanks for the suggestion! I do have one question though, that

being
> the
> > > case, why does it work once, but not once I move on from that page? > > >
> > > Thanks
> > > Paul
> > > "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in

message
> > > news:ew**************@tk2msftngp13.phx.gbl...
> > > > you have custom controls on that page? custom controls cannot
directly
> > > > access session, you need to first get a reference to the session > object
> > > from
> > > > httpcontext.current.
> > > >
> > > > If that still doesn't work, you will need to put code to display the
> > > session
> > > > variable in the page load and troubleshoot from there
> > > >
> > > > if(Session["UserName"]!= null)
> > > > Response.Write("<script>alert('" +
Session["UserName"].ToString()
> +
> > > > "')</script>");
> > > >
> > > > should display something
> > > > --
> > > > Regards,
> > > > Alvin Bruney [ASP.NET MVP]
> > > > Got tidbits? Get it here...
> > > > http://tinyurl.com/3he3b
> > > > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > > > news:-s********************@giganews.com...
> > > > > Hello!
> > > > >
> > > > > The session state information in the web.config is as
follows: > > > > >
> > > > > <sessionState
> > > > >
> > > > > mode="InProc"
> > > > >
> > > > > stateConnectionString="tcpip=127.0.0.1:42424"
> > > > >
> > > > > sqlConnectionString="data

source=127.0.0.1;Trusted_Connection=yes"
> > > > >
> > > > > cookieless="false"
> > > > >
> > > > > timeout="20"
> > > > >
> > > > > />
> > > > >
> > > > > There is no <pages> element in the Web.config. I want to have
the
> > > session
> > > > > variables be available to all of the pages in the project.
> > > > >
> > > > > Most of the variables that are in the session state are strings, so
> I
> > > use
> > > > > (string) to cast them. For example, in the status bar user
control,
> I
> > > > use:
> > > > > lblUserName.Text="Logged in using: " +
> Session["UserName"].ToString();
> > > > >
> > > > > lblSecurity.Text="Security Level: " +
> > > > >

Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
> > > > >
> > > > > The first line accesses the session directly, and uses

ToString()
to
> > get
> > > > the
> > > > > info. The second line I am casting it to an integer to
throw into
> the
> > > > > function. The funny thing with these and the status bar is once it
> > logs
> > > > on
> > > > > and takes you to the menu, all of the info is currect,
however if
I
> > move
> > > > > past that, the first line produces 'Logged in using:' and
that is
> it,
> > > > while
> > > > > the second line produces absolutely nothing.
> > > > >
> > > > > Thanks for your help!
> > > > >
> > > > > Paul
> > > > >
> > > > >
> > > > >
> > > > > "Milan Negovan" <sa***@northpole.net> wrote in message
> > > > > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > > > > Hi Paul,
> > > > > >
> > > > > >
> > > > > > > I don't receive any errors, there just isn't anything
that > appears
> > > in
> > > > > these
> > > > > > > fields. Each page has sessions enabled. If you have any > > > suggestions,
> > > > > > > PLEASE let me know!
> > > > > >
> > > > > > You mentioned each page had session enabled. Is there a

chance the
> > > > > > session is disabled in web.config? What does your

<sessionState>
> > > element
> > > > > > look like?
> > > > > >
> > > > > > Also, do you happen to have a <pages> element in
web.config that
> > > > > > disables the session state for certain files?
> > > > > >
> > > > > > Also, how do you cast values you read from the Session

object? > > > > > >
> > > > > > --
> > > > > > Milan Negovan
> > > > > > www.AspNetResources.com
> > > > > > Essential recources for ASP.NET developers
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Nov 15 '05 #12

P: n/a
Which class are you referring to? I don't see one specifically that isn't,
other than the user controls.

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:um**************@TK2MSFTNGP12.phx.gbl...
Your class for your webform does not descend from UI page. What's the reason for this?
Example:

public class WebForm1 : System.Web.UI.Page
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:X8********************@giganews.com...
Sorry for the delay, I have tried posting the project as an attachment,
isn't working, so here is the code:

Default.aspx has no code, just the login control. Code is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.SessionState;

/// <summary>

/// Summary description for WebUserControl1.

/// </summary>

public class WebUserControl1 : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.TextBox txtUserName;

protected System.Web.UI.WebControls.TextBox txtPassword;

protected System.Web.UI.WebControls.Label txtError;

protected System.Web.UI.WebControls.Button btnCheckLogin;

private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

txtError.Text="";

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnCheckLogin.Click += new
System.EventHandler(this.btnCheckLogin_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnCheckLogin_Click(object sender, System.EventArgs e)

{

Auth Authentication = new Auth();

try

{

Session["UserID"]=Authentication.GetUserID(txtUserName.Text,txtPass word.Text
);

Session["SecurityLevel"]=Authentication.GetSecurityLevel((int)Session["UserI
D"]);

Session["UserName"]=txtUserName.Text;

Session["PassChange"]=txtUserName.Text;

txtError.Text="";

Server.Transfer(Authentication.GetMainMenu((int)Se ssion["SecurityLevel"]));

}

catch

{

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

txtError.Text="You have entered incorrect user login credentials, please

try
again";

}

}

}

}

From there, they get sent to a menu based off of the function called in

the
CheckLogin_Click function. The Auth class is just a class I am using for DB
connection items.

Depending on who you log in as, you go to a main menu (different menu
depending on your credentials). Each menu (right now) is a blank page,

with
the LoginStatusBar user control, giving information as to who they are
logged in as. The code for the LoginStatusBar.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for LoginStatusBar.

/// </summary>

public class LoginStatusBar : System.Web.UI.UserControl

{

int LogOutFlag=0;

HttpContext current = HttpContext.Current;

Auth Authenticate = new Auth();

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.Button btnLogout;

protected System.Web.UI.WebControls.Label lblSecurity;

private void Page_Load(object sender, System.EventArgs e)

{

if(LogOutFlag==0)

{

try

{

lblUserName.Text="Logged in using: " +
current.Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)current.Ses sion["SecurityLevel"]);
}

catch

{

}

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnLogout_Click(object sender, System.EventArgs e)

{

LogOutFlag=1;

Server.Transfer("../Default.aspx");

}

}

}

Up to this point, everything works fine.

One of the menus, I created a button and have it using Server.Transfer to move to a password change page. It again has the same login status bar,
however this is where things break. It will produce the 'Logged in

using:"
piece, and that is it. The "Security Level:" piece never shows up. In

the
main page, I created a label to get the session variable, and it produces nothing. The code for the Password Change.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for PasswordChange.

/// </summary>

public class PasswordChange : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button btnChangePassword;

protected System.Web.UI.WebControls.Label Label4;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.TextBox txtConfirmPassword;

protected System.Web.UI.WebControls.TextBox txtNewPassword;

protected System.Web.UI.WebControls.TextBox txtOldPassword;

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.CompareValidator vldNewPass;

Auth Authenticate = new Auth();

private void Page_Load(object sender, System.EventArgs e)

{

lblUserName.Text=Session["UserName"].ToString();

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnChangePassword.Click += new
System.EventHandler(this.btnChangePassword_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnChangePassword_Click(object sender, System.EventArgs e)

{

try

{

if((bool)Authenticate.ChangePassword((string)Sessi on["UserName"],txtOldPassw
ord.Text,txtNewPassword.Text))

{

Server.Transfer(Authenticate.GetMainMenu((int)Sess ion["SecurityLevel"]));
}

}

catch

{

}
}

}

}

If you need any more info, please let me know.

Paul

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:es**************@TK2MSFTNGP12.phx.gbl...
Sure, post the code which reproduces the problem.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Gp********************@giganews.com...
> I should also mention I tried using httpcontext too, same thing...
>
>
> "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message > news:On**************@TK2MSFTNGP09.phx.gbl...
> > i really have no idea. if you can't figure this out, i 'd be happy to look
> > at the code
> >
> > --
> > Regards,
> > Alvin Bruney [ASP.NET MVP]
> > Got tidbits? Get it here...
> > http://tinyurl.com/3he3b
> > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > news:Ae********************@giganews.com...
> > > Thanks for the suggestion! I do have one question though, that

being
> the
> > > case, why does it work once, but not once I move on from that page? > > >
> > > Thanks
> > > Paul
> > > "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in

message
> > > news:ew**************@tk2msftngp13.phx.gbl...
> > > > you have custom controls on that page? custom controls cannot
directly
> > > > access session, you need to first get a reference to the session > object
> > > from
> > > > httpcontext.current.
> > > >
> > > > If that still doesn't work, you will need to put code to display the
> > > session
> > > > variable in the page load and troubleshoot from there
> > > >
> > > > if(Session["UserName"]!= null)
> > > > Response.Write("<script>alert('" +
Session["UserName"].ToString()
> +
> > > > "')</script>");
> > > >
> > > > should display something
> > > > --
> > > > Regards,
> > > > Alvin Bruney [ASP.NET MVP]
> > > > Got tidbits? Get it here...
> > > > http://tinyurl.com/3he3b
> > > > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > > > news:-s********************@giganews.com...
> > > > > Hello!
> > > > >
> > > > > The session state information in the web.config is as
follows: > > > > >
> > > > > <sessionState
> > > > >
> > > > > mode="InProc"
> > > > >
> > > > > stateConnectionString="tcpip=127.0.0.1:42424"
> > > > >
> > > > > sqlConnectionString="data

source=127.0.0.1;Trusted_Connection=yes"
> > > > >
> > > > > cookieless="false"
> > > > >
> > > > > timeout="20"
> > > > >
> > > > > />
> > > > >
> > > > > There is no <pages> element in the Web.config. I want to have
the
> > > session
> > > > > variables be available to all of the pages in the project.
> > > > >
> > > > > Most of the variables that are in the session state are strings, so
> I
> > > use
> > > > > (string) to cast them. For example, in the status bar user
control,
> I
> > > > use:
> > > > > lblUserName.Text="Logged in using: " +
> Session["UserName"].ToString();
> > > > >
> > > > > lblSecurity.Text="Security Level: " +
> > > > >

Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
> > > > >
> > > > > The first line accesses the session directly, and uses

ToString()
to
> > get
> > > > the
> > > > > info. The second line I am casting it to an integer to
throw into
> the
> > > > > function. The funny thing with these and the status bar is once it
> > logs
> > > > on
> > > > > and takes you to the menu, all of the info is currect,
however if
I
> > move
> > > > > past that, the first line produces 'Logged in using:' and
that is
> it,
> > > > while
> > > > > the second line produces absolutely nothing.
> > > > >
> > > > > Thanks for your help!
> > > > >
> > > > > Paul
> > > > >
> > > > >
> > > > >
> > > > > "Milan Negovan" <sa***@northpole.net> wrote in message
> > > > > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > > > > Hi Paul,
> > > > > >
> > > > > >
> > > > > > > I don't receive any errors, there just isn't anything
that > appears
> > > in
> > > > > these
> > > > > > > fields. Each page has sessions enabled. If you have any > > > suggestions,
> > > > > > > PLEASE let me know!
> > > > > >
> > > > > > You mentioned each page had session enabled. Is there a

chance the
> > > > > > session is disabled in web.config? What does your

<sessionState>
> > > element
> > > > > > look like?
> > > > > >
> > > > > > Also, do you happen to have a <pages> element in
web.config that
> > > > > > disables the session state for certain files?
> > > > > >
> > > > > > Also, how do you cast values you read from the Session

object? > > > > > >
> > > > > > --
> > > > > > Milan Negovan
> > > > > > www.AspNetResources.com
> > > > > > Essential recources for ASP.NET developers
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Nov 15 '05 #13

P: n/a
I spent a great deal of time just trying to get the example to compile with
all the missing undefined classes which really didn't help.

Please provide a short but complete program which demonstrates the problem
according to jons instructions here
http://www.yoda.arachsys.com/csharp/complete.html

Short but complete means I want to paste it into my ide and have it compile
so that i can spend 20 minutes on the bug, and not 20 minutes trying to get
it to compile.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:Mc********************@giganews.com...
Which class are you referring to? I don't see one specifically that isn't, other than the user controls.

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:um**************@TK2MSFTNGP12.phx.gbl...
Your class for your webform does not descend from UI page. What's the

reason
for this?
Example:

public class WebForm1 : System.Web.UI.Page
--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/3he3b
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:X8********************@giganews.com...
Sorry for the delay, I have tried posting the project as an attachment, isn't working, so here is the code:

Default.aspx has no code, just the login control. Code is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Web.SessionState;

/// <summary>

/// Summary description for WebUserControl1.

/// </summary>

public class WebUserControl1 : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.TextBox txtUserName;

protected System.Web.UI.WebControls.TextBox txtPassword;

protected System.Web.UI.WebControls.Label txtError;

protected System.Web.UI.WebControls.Button btnCheckLogin;

private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

txtError.Text="";

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnCheckLogin.Click += new
System.EventHandler(this.btnCheckLogin_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnCheckLogin_Click(object sender, System.EventArgs e)

{

Auth Authentication = new Auth();

try

{

Session["UserID"]=Authentication.GetUserID(txtUserName.Text,txtPass word.Text
);

Session["SecurityLevel"]=Authentication.GetSecurityLevel((int)Session["UserI
D"]);

Session["UserName"]=txtUserName.Text;

Session["PassChange"]=txtUserName.Text;

txtError.Text="";

Server.Transfer(Authentication.GetMainMenu((int)Se ssion["SecurityLevel"]));

}

catch

{

Session["UserID"]="";

Session["SecurityLevel"]="";

Session["UserName"]="";

txtError.Text="You have entered incorrect user login credentials, please
try
again";

}

}

}

}

From there, they get sent to a menu based off of the function called
in
the
CheckLogin_Click function. The Auth class is just a class I am using for
DB
connection items.

Depending on who you log in as, you go to a main menu (different menu
depending on your credentials). Each menu (right now) is a blank

page, with
the LoginStatusBar user control, giving information as to who they are
logged in as. The code for the LoginStatusBar.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for LoginStatusBar.

/// </summary>

public class LoginStatusBar : System.Web.UI.UserControl

{

int LogOutFlag=0;

HttpContext current = HttpContext.Current;

Auth Authenticate = new Auth();

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.Button btnLogout;

protected System.Web.UI.WebControls.Label lblSecurity;

private void Page_Load(object sender, System.EventArgs e)

{

if(LogOutFlag==0)

{

try

{

lblUserName.Text="Logged in using: " +
current.Session["UserName"].ToString();

lblSecurity.Text="Security Level: " +
Authenticate.GetSecurityLevelText((int)current.Ses sion["SecurityLevel"]);
}

catch

{

}

}

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnLogout_Click(object sender, System.EventArgs e)

{

LogOutFlag=1;

Server.Transfer("../Default.aspx");

}

}

}

Up to this point, everything works fine.

One of the menus, I created a button and have it using Server.Transfer to move to a password change page. It again has the same login status
bar, however this is where things break. It will produce the 'Logged in

using:"
piece, and that is it. The "Security Level:" piece never shows up. In the
main page, I created a label to get the session variable, and it produces nothing. The code for the Password Change.ascx.cs is below:

namespace BookTrack.UserControls

{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

/// <summary>

/// Summary description for PasswordChange.

/// </summary>

public class PasswordChange : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button btnChangePassword;

protected System.Web.UI.WebControls.Label Label4;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.TextBox txtConfirmPassword;

protected System.Web.UI.WebControls.TextBox txtNewPassword;

protected System.Web.UI.WebControls.TextBox txtOldPassword;

protected System.Web.UI.WebControls.Label lblUserName;

protected System.Web.UI.WebControls.CompareValidator vldNewPass;

Auth Authenticate = new Auth();

private void Page_Load(object sender, System.EventArgs e)

{

lblUserName.Text=Session["UserName"].ToString();

}

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}
/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.btnChangePassword.Click += new
System.EventHandler(this.btnChangePassword_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void btnChangePassword_Click(object sender, System.EventArgs
e)
{

try

{

if((bool)Authenticate.ChangePassword((string)Sessi on["UserName"],txtOldPassw
ord.Text,txtNewPassword.Text))

{

Server.Transfer(Authenticate.GetMainMenu((int)Sess ion["SecurityLevel"]));
}

}

catch

{

}
}

}

}

If you need any more info, please let me know.

Paul

"Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message
news:es**************@TK2MSFTNGP12.phx.gbl...
> Sure, post the code which reproduces the problem.
>
> --
> Regards,
> Alvin Bruney [ASP.NET MVP]
> Got tidbits? Get it here...
> http://tinyurl.com/3he3b
> "Paul Yanzick" <ya******@hotmail.com> wrote in message
> news:Gp********************@giganews.com...
> > I should also mention I tried using httpcontext too, same thing...
> >
> >
> > "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in message > > news:On**************@TK2MSFTNGP09.phx.gbl...
> > > i really have no idea. if you can't figure this out, i 'd be happy to
> look
> > > at the code
> > >
> > > --
> > > Regards,
> > > Alvin Bruney [ASP.NET MVP]
> > > Got tidbits? Get it here...
> > > http://tinyurl.com/3he3b
> > > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > > news:Ae********************@giganews.com...
> > > > Thanks for the suggestion! I do have one question though,
that being
> > the
> > > > case, why does it work once, but not once I move on from that

page?
> > > >
> > > > Thanks
> > > > Paul
> > > > "Alvin Bruney [MVP]" <vapor at steaming post office> wrote in
message
> > > > news:ew**************@tk2msftngp13.phx.gbl...
> > > > > you have custom controls on that page? custom controls cannot > directly
> > > > > access session, you need to first get a reference to the session > > object
> > > > from
> > > > > httpcontext.current.
> > > > >
> > > > > If that still doesn't work, you will need to put code to display the
> > > > session
> > > > > variable in the page load and troubleshoot from there
> > > > >
> > > > > if(Session["UserName"]!= null)
> > > > > Response.Write("<script>alert('" +
> Session["UserName"].ToString()
> > +
> > > > > "')</script>");
> > > > >
> > > > > should display something
> > > > > --
> > > > > Regards,
> > > > > Alvin Bruney [ASP.NET MVP]
> > > > > Got tidbits? Get it here...
> > > > > http://tinyurl.com/3he3b
> > > > > "Paul Yanzick" <ya******@hotmail.com> wrote in message
> > > > > news:-s********************@giganews.com...
> > > > > > Hello!
> > > > > >
> > > > > > The session state information in the web.config is as follows: > > > > > >
> > > > > > <sessionState
> > > > > >
> > > > > > mode="InProc"
> > > > > >
> > > > > > stateConnectionString="tcpip=127.0.0.1:42424"
> > > > > >
> > > > > > sqlConnectionString="data
source=127.0.0.1;Trusted_Connection=yes"
> > > > > >
> > > > > > cookieless="false"
> > > > > >
> > > > > > timeout="20"
> > > > > >
> > > > > > />
> > > > > >
> > > > > > There is no <pages> element in the Web.config. I want to have the
> > > > session
> > > > > > variables be available to all of the pages in the project.
> > > > > >
> > > > > > Most of the variables that are in the session state are

strings,
> so
> > I
> > > > use
> > > > > > (string) to cast them. For example, in the status bar user > control,
> > I
> > > > > use:
> > > > > > lblUserName.Text="Logged in using: " +
> > Session["UserName"].ToString();
> > > > > >
> > > > > > lblSecurity.Text="Security Level: " +
> > > > > >
Authenticate.GetSecurityLevelText((int)Session["SecurityLevel"]);
> > > > > >
> > > > > > The first line accesses the session directly, and uses
ToString()
> to
> > > get
> > > > > the
> > > > > > info. The second line I am casting it to an integer to throw into
> > the
> > > > > > function. The funny thing with these and the status bar
is once
> it
> > > logs
> > > > > on
> > > > > > and takes you to the menu, all of the info is currect,

however if
> I
> > > move
> > > > > > past that, the first line produces 'Logged in using:' and that is
> > it,
> > > > > while
> > > > > > the second line produces absolutely nothing.
> > > > > >
> > > > > > Thanks for your help!
> > > > > >
> > > > > > Paul
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Milan Negovan" <sa***@northpole.net> wrote in message
> > > > > > news:TX**********************@news4.srv.hcvlny.cv. net...
> > > > > > > Hi Paul,
> > > > > > >
> > > > > > >
> > > > > > > > I don't receive any errors, there just isn't anything that > > appears
> > > > in
> > > > > > these
> > > > > > > > fields. Each page has sessions enabled. If you have any > > > > suggestions,
> > > > > > > > PLEASE let me know!
> > > > > > >
> > > > > > > You mentioned each page had session enabled. Is there a

chance
> the
> > > > > > > session is disabled in web.config? What does your
<sessionState>
> > > > element
> > > > > > > look like?
> > > > > > >
> > > > > > > Also, do you happen to have a <pages> element in web.config that
> > > > > > > disables the session state for certain files?
> > > > > > >
> > > > > > > Also, how do you cast values you read from the Session

object?
> > > > > > >
> > > > > > > --
> > > > > > > Milan Negovan
> > > > > > > www.AspNetResources.com
> > > > > > > Essential recources for ASP.NET developers
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Nov 15 '05 #14

P: n/a
Ok, got the issue figued out!

On my main page, I have a login control that will set the session variables,
and should something go wrong (cannot connect to the database, nothing is
returned when trying to verify the user ID or security level, etc), it will
then set the variables blank.

The odd part is that part 'seemed' to work, as when you log in it takes you
to the next page and everything is fine. From there though, no matter what
page you went to, it stopped working.

I commented out the lines to blank out the session variables in the control
presented on the first page, and everything is working now! Why that
affected it, I am not sure yet, but it did. I guess the lesson is to be
careful of what you are doing as even though things seem to work, they can
burn you down the road!

Thanks everyone for your help on this! Greatly appreciated!

Paul
"Paul Yanzick" <ya******@hotmail.com> wrote in message
news:At********************@giganews.com...
Hello,

I am trying to develop a book tracking application for my capstone in
school, and am running into a problem.

The application is an ASP.Net application written in C#. The first page you go to is a login form, which will set several session variables with the
name used to log in, appropriate security level and some other misc
variables, and then will go to a main menu for each particular security
level using Server.Transfer. Each main menu contains a user control at the top showing the security level you are logged in as and the username that
you are logged in as.

From here, if I try to utilize a menu item (either hyperlink or a button
that uses Server.Transfer again) to go to a different page, the session
variables no longer seem to exist. For example, one such page goes to a
password change page, and also includes the same user control that the main menu has at the top, however it doesn't list the information in the session variables. In fact, it only shows part of the textual part as well. The
actual page itself uses another user control (basically a table with a few
fields on it) that calls a session variable, and that one doesn't show up
either.

I don't receive any errors, there just isn't anything that appears in these fields. Each page has sessions enabled. If you have any suggestions,
PLEASE let me know!

If you would like to see what happens, take a look at
http://www.st-onge.org/class/dev/booktrack/default.aspx and use
tadmin/tadmin for the username/password. Right now the menu contains just a button that is unlabeled, but that takes you to the password change utility.
Thanks in advance,
Paul

Nov 15 '05 #15

This discussion thread is closed

Replies have been disabled for this discussion.