0

我在这里遇到了一些问题..当用户输入他们的 id 和密码时,它将显示主页及其用户但是当管理员或工作人员输入他们的 id 时,它将进入用户的主页,我必须点击顶部超链接上的管理站点,它会自动注销,一旦我输入管理员密码或员工密码,那么只有它重定向到管理页面或员工页面。如何让它像一旦用户输入他们的密码,它就会重定向到用户页面,一旦管理员输入管理员密码或员工在登录时输入他们的密码,它重定向到管理员或员工?我在这里有 3 个角色,分别是管理员、员工和用户。在此,我将为您提供我的 aspx 代码以及在后面运行的 vb 代码程序。请帮助我。谢谢

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

结束类

请在这方面指导我。需要这个紧急的感谢。

4

1 回答 1

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;
                        }
                    }
                }
    }
于 2011-11-09T15:00:44.390 回答