Перенаправление в зависимости от роли пользователя - PullRequest
0 голосов
/ 09 ноября 2011

У меня возникли некоторые проблемы здесь .. когда пользователь вводит свой идентификатор и пароль, он показывает главную страницу и его для пользователя, но когда администратор или персонал вводят свой идентификатор, он входит на главную страницу пользователя, и я нужно щелкнуть сайт администратора на верхней гиперссылке, где он автоматически выходит из системы, и как только я вхожу обратно, пароль администратора или пароль персонала, только перенаправить его на страницу администратора или на страницу персонала. Как только администратор введет пароль администратора или сотрудники введут свой пароль в логин, который он перенаправляет на администратора или сотрудников? У меня есть 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

Конечный класс

Пожалуйста, направь меня в этом. Нужно срочно, спасибо.

1 Ответ

0 голосов
/ 09 ноября 2011

, если вы не хотите вступать в 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;
                        }
                    }
                }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...