Problem with FormsAuthentication and SetAuthCookie

D

David Colliver

Hi all,

I am having a slight problem with my app and authentication.

My system uses Microsoft CMS 2002, so what I have needs to fit around that.
In this case, I am not using CMS to manage the authentication. I am using SQL
Server.

Here is what I want to achieve...

Because I am using CMS, I don't want to have to create hundreds of different
pages to manage different parts of one application as this would require that
I create hundreds of templates. I need it to be as simple as possible, so I
build up the page in panels, switching off and on when needed.

My page has:
[PANEL] UserName/Password boxes and a Login Button.

[PANEL] Tabstrip

[PANEL] application contents.

Naturally, first entry to the page should only show the login panel. This it
does admirably.

I enter my details and it shows the tabstrip panel. I click on an item in
the tabstrip to view the app content. However, the Login Panel now shows up
as well as the app content. (This is a logic problem that I can fix later...)

The issue is that after I setauthcookie, I am still not authenticated.

I am trying to avoid having seperate login pages and redirectors to another
page, so my login code and app code are all in the same page.

In my page load, I have...

if (User.Identity.IsAuthenticated)
{
TabListPanel.Visible = true;
Trace.Warn("Auth", DateTime.Now.ToString());
}
else
{
LoginPanel.Visible = true;
}

In my button click event, I have:

CheckLogin();

CkeckLogin is:

try
{
sqlConn.Open();

SqlDataAdapter cmd;

if (User.Identity.IsAuthenticated)
{
cmd = new SqlDataAdapter("select * from myuser where username = '" +
User.Identity.Name + "'", sqlConn);
}
else
{
cmd = new SqlDataAdapter("select * from myuser where username = '" +
LoginBox.Text.Replace("'", "''") + "' and password = '" +
PasswordBox.Text.Replace("'", "''") + "'", sqlConn);
}

DataSet Login = new DataSet();
cmd.Fill(Login, "UserDetails");

if (Login.Tables["UserDetails"].Rows.Count > 0)
{
// Write the authentication cookie.
FormsAuthentication.SetAuthCookie(LogintBox.Text, true);
// Remove login panel, show links (TAB) panel.
LoginPanel.Visible = false;
TabListPanel.Visible = true;
}
}
finally
{
sqlConn.Close();
}


To me, everything is as it should be, but after I login, the
User.Identity.IsAuthenticated in PageLoad returns false.

How can I get around this?

Thanks.

Regards,
Dave Colliver.
http://www.AshfieldFOCUS.com
~~
http://www.FOCUSPortals.com - Portal franchises available
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top