Page redirect baste on membership role. (asp.net 2.0 and c#)

I have 2 member ship roles in my site, directors and staff.  After a user logs in, I would like to have a page load event, that would redirect the directors to a different  start page.  Can someone show me how i can do this with a simple if statement, in the page load event?  Im working with ASP.Net 2.0 and C#.

Thanks for any help.
bmanmike39Asked:
Who is Participating?
 
carlnorrbomConnect With a Mentor Commented:
Hi,

I'm really a VB guy but I will give it a go in C# as well, please see the attached code snippets..

/Carl.
'VB.NET Version
 
Protected Sub Page_Load(ByVal sender as Object, ByVal e As System.EventArgs) Handles Me.Load
	If User.Identity.IsAuthenticated Then
		If User.IsInRole("directors") Then
			Response.Redirect("~/secure_directors/Default.aspx") 'Your url by choice..
		End If
		If User.IsInRole("staff") Then
			Response.Redirect("~/secure_staff/Default.aspx")
		End If
	End If
End Sub
 
'C# Version
 
protected void Page_Load(object sender, System.EventArgs e) {
    if (User.Identity.IsAuthenticated) {
        if (User.IsInRole("directors")) {
            Response.Redirect("~/secure_directors/Default.aspx"); //Your url by choice..
        }
        if (User.IsInRole("staff")) {
            Response.Redirect("~/secure_staff/Default.aspx");
        }
    }
}

Open in new window

0
 
philipjonathanCommented:
Does this help:
Response.Redirect("http://your_url_here");
0
 
bmanmike39Author Commented:
I understand the response redirect,  I dont know how to write the code, for the user.name.identity. in other words,

If  userneme = = directors
{
response.redirect(this url)
}

Something like the above.
0
 
philipjonathanCommented:
Hi, do you mean how to check if the membership role equals certain value? It depends on what data type do you use to store the membership roles. Typically you would use integer, then the code would be like:

if (membershipRole == 0)  // let's say director
  Response.Redirect(... /* director page */);


otherwise, if it is a string:
if (membershipRole.Equals("Director"))
  Response.Redirect(... /* director page */);

The value of membershipRole should be stored somewhere in database, eg:

user_id | login_name | password | membership_role
------------------------------------------------------------------
1           | abc              | abc123     | 0
2           | def              | def123      | 1
...

You need to use select query to get that based on the login name the user supplied
0
 
bmanmike39Author Commented:
Im using the Asp.net 2.0 membership provider, and i have the roles turned on.  I need to get the role of the user from the provider. After the login page redirects to the start page.

I know how to get the users name for the provider, it User.Identity.Name but how do i get the users Role from the provider?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.