根据用户的角色重定向

时间:2011-11-09 14:42:10

标签: asp.net vb.net authentication response.redirect asp.net-roles

我在这里遇到一些问题..当用户输入他们的ID和密码时,它会显示主页面及其用户,但是当管理员或工作人员输入他们的ID时,它将进入用户的主页面而我必须单击顶部超链接上的管理站点,它会自动注销,一旦我输入管理员密码或员工密码,然后只有它重定向到管理页面或员工页面。如果用户输入他们的密码,它会重定向到用户页面,一旦管理员输入管理员密码或工作人员在登录时输入他们的密码,它会重定向到管理员或工作人员?我在这里有3个角色,分别是管理员,员工和用户.Hereby我将为您提供我的aspx代码以及我的vb代码,这是在program.please之后运行帮助me.thanks

ASPX

 <asp:Login ID="Login1" runat="server" BackColor="#009933" BorderColor="Red" 
    BorderPadding="4" BorderStyle="Ridge" BorderWidth="1px" Font-Names="Verdana" 
    Font-Size="0.8em" ForeColor="Red" 
    DestinationPageUrl="~/MainPage.aspx" style="text-align: center" Height="171px" 
                Width="266px"  VisibleWhenLoggedIn="True" TextLayout="TextOnTop">
    <TextBoxStyle Font-Size="0.8em" />
    <LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" 
        BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
    <InstructionTextStyle Font-Italic="True" ForeColor="Black" />
    <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" 
        ForeColor="White" />

</asp:Login>

VB

Partial Class Login

Inherits System.Web.UI.Page

结束班

请指导我。请紧急致谢。

1 个答案:

答案 0 :(得分:0)

如果你不想进入asp会员,这里可以是一个简单的解决方案: 基于请求来自您的Url,您可以在Login.aspx.cs页面中编写此代码:

protected void LoginButton_Click(object sender, EventArgs e)
    {
        //I detect where the request originated from
        string str = Request.QueryString["ReturnUrl"] == null ? "" : Request.QueryString["ReturnUrl"].ToString();
            //if this is Admin can access to Admin Area only
            if (str.Contains("Admin") == true || str.Contains("admin") == true || str.Contains("ADMIN") == true)
                {
                    string[] UserNameCollection = { "Admin" };
                    string[] PasswordCollection = { "admin" };

                    for (int Iterator = 0; Iterator <= UserNameCollection.Length - 1; Iterator++)
                    {
                        bool UserNameIsValid = (string.Compare(UserName.Text, UserNameCollection[Iterator], true) == 0);
                        bool PasswordIsValid = (string.Compare(Password.Text, PasswordCollection[Iterator], false) == 0);

                        if (UserNameIsValid && PasswordIsValid)
                        {

                            FormsAuthentication.SetAuthCookie(UserName.Text, true);
                            Response.Redirect("Admin/Default.aspx");
                        }
                        else
                        {
                            BadCredentials.Text = "Not valid";
                            BadCredentials.Visible = true;
                        }
                    }
                }
            //if this is a crm user can access to Crm Area only
            else if (str.Contains("Staff") == true)
            {
                    string[] UserNameCollection = { "Staff" };
                    string[] PasswordCollection = { "staff" };

                    for (int Iterator = 0; Iterator <= UserNameCollection.Length - 1; Iterator++)
                    {
                        bool UserNameIsValid = (string.Compare(UserName.Text, UserNameCollection[Iterator], true) == 0);
                        bool PasswordIsValid = (string.Compare(Password.Text, PasswordCollection[Iterator], false) == 0);

                        if (UserNameIsValid && PasswordIsValid)
                        {
                            SaveVisitedEntry("CrmAdmin");
                            FormsAuthentication.SetAuthCookie(UserName.Text, true);
                            Response.Redirect("Staff/Default.aspx");
                        }
                        else
                        {
                            BadCredentials.Text = "Not valid";
                            BadCredentials.Visible = true;
                        }
                    }
                }
    }