The simplest way, though probably not the ideal way, would be to perform a check during the redirect. I would set up your roles as constants or an enumerable somewhere, then conditionally check:
if(string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
FormsAuthentication.SetAuthCookie(tbUserName.Text, false);
if (HttpContext.Current.User.IsInRole(ADMIN))
{
Response.Redirect(ADMIN_URL, true);
}
else if (HttpContext.Current.User.IsInRole(USER))
{
Response.Redirect(USER_URL, true);
}
else if (HttpContext.Current.User.IsInRole(DEALER))
{
Response.Redirect(DEALER_URL, true);
}
else if (HttpContext.Current.User.IsInRole(OPERATOR))
{
Response.Redirect(OPERATOR_URL, true);
}
else
{
Response.Redirect(SOME_DEFAULT_URL, true);
}
}
else
{
FormsAuthentication.RedirectFromLoginPage(tbUserName.Text, false);
}
Conceivably this check would be abstracted into a method in a library or even later within this class. This method would perform a redirect based on the first encountered role, so if a user had multiple roles (e.g. DEALER/OPERATOR) the first would take precedence.