Как предоставить разные страницы при входе в систему для разных пользователей? - PullRequest
1 голос
/ 13 февраля 2012

Я работаю над веб-приложением, в котором есть база данных

             UserName|Password|UserType
             Anil|Anil|Manager
             ghouse|Ghouse|Admin
             raghu|raghu|User

Теперь моя задача - предоставить каждому пользователю отдельную страницу при входе в систему ... Все они имеют одну и ту же страницу входа.

Я попробовал этот код, он отлично работает для двух пользователей.Что делать, если у меня более двух пользователей?

         SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCareBankApp;Data Source=SSDEV7-HP\\SQLEXPRESS");
        string cmdStr = "select LoginType from Login where UserName='" + TxtUsername.Text + "' AND Password = '" + TxtPassword.Text + "'";
        SqlCommand cmd = new SqlCommand(cmdStr, con);
        con.Open();
        Object TypeUser = cmd.ExecuteScalar();
        con.Close();
        if (TypeUser != null)
        {
            LblError.Visible = false;
            LblError.Text = "";
            if (TypeUser.ToString() == "Manager")
                Response.Redirect("~/CallingAgents/CallingAgents_Login.aspx");
            else
                Response.Redirect("~/UserRegistrationForm.aspx");
        }
        else
        {
            LblError.Visible = true;
            LblError.Text = "Invalid Credentials Entered, Try again";
        }

Ответы [ 5 ]

1 голос
/ 13 февраля 2012

Я думаю, вы должны создать общий класс, в который вставьте ваш тип пользователя при успешном входе в систему.В этом общем классе перенаправьте его на соответствующую страницу.

При успешном входе в систему:

 Response.Redirect(clsCommon.GetDefaultPage(userType));

код вашего класса запятых:

 public static string GetDefaultPage(string userType){
        //Default Redirects
        Dictionary<string, string> userInfo = new Dictionary<string, string>(){
{"Manager","~/ManagerLogin.aspx"},                                  {"Admin","~/AdminLogin.aspx"},                         
                          {"User","~/UserLogin.aspx"}
                                 };
            return userInfo[roleName];
}
0 голосов
/ 13 февраля 2012

Используйте сеансы.

Для обходного пути вы можете выполнить следующее:

+ предоставить ту же страницу входа в систему.+ Спросите имя пользователя и пароль.+ используйте раскрывающийся список для выбора типа пользователя (например, «Администратор» или «Менеджер» или «Пользователь»).

Итак, на основе выбора из выпадающего списка вы обрабатываете запрос.

Надеюсь, это поможет.1009 *

0 голосов
/ 13 февраля 2012

Простой способ - использовать элемент управления Login и предоставить обработчики событий для события Authenticate и события LoggedIn. Но я думаю, что вам стоит проверить возможности системы членства asp.net.

0 голосов
/ 13 февраля 2012

Я предполагаю, что вы не используете Членство провайдера и выполняете свою регистрацию вручную.

Я не до конца понимаю цель этой настройки.Это не имеет смысла для меня.Но есть несколько решений для вас:

  • преобразовать страницу входа (aspx) в пользовательский / пользовательский элемент управления (ascx) и поместить на разные страницы - просто, быстро, но не полностью прозрачно, подробнее ScottGu
  • использовать механизм перезаписи URL IIS для предоставления нескольких точек входа (URL) на одну и ту же страницу входа - clear, рекомендуется , дополнительная информация ScottGu

При первом сценарии вам необходимо проверить UserType для учетных данных, предоставленных пользователем, и сопоставить его сURL страницы (aspx).Во втором сценарии вам нужно получить Request.RawUrl, который содержит базовый URL и сделать простой case.

0 голосов
/ 13 февраля 2012

Если вы используете распорки, вы можете перенаправить на разные страницы в зависимости от идентификатора. В actionforward вы можете добиться этого. Или вы можете получить некоторые значения из URL и попытаться перенаправить его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...