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

что я пытаюсь сделать, это

У меня есть общая страница входа с 4 пользователями, каждый из которых имеет разные роли и у меня есть главные страницы Singel, где у меня есть разные контролы ..... как обеспечить аутентификацию для собственной страницы с назначенными им контроллерами ... в зависимости от их роли они должны быть направлены на данную страницу ....

       user 1 manager he needs only some controls on the page so when he logins the master page should contain only the controls assgned to him

применяется одинаково для всех пользователей

Может ли кто-нибудь мне помочь ...... Строгание, я не знаю с чего начать ....

Ответы [ 2 ]

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

Попробуйте это при нажатии кнопки

               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("~//Administration/Manager/WorkManagement.aspx");
            }
            else if (TypeUser.ToString() == "HR")
            {
                Response.Redirect("~//Administration/Hr/CalculateAndGeneratePayslips.aspx");
            }
            else if (TypeUser.ToString() == "Employee")
            {
                Response.Redirect("~//Administration/CallingAgent/TodaysWork.aspx");
            }
        }
        else
        {
            LblError.Visible = true;
            LblError.Text = "Invalid Credentials Entered, Try again";                
        }
0 голосов
/ 10 февраля 2012

Для этого подхода есть простой способ, который приведен ниже.

  1. Оставить одну мастер-страницу по умолчанию // ("MasterPage.master")
  2. Добавить столько главных страниц в соответствии с требованием // "manager.master / Admin.master"
  3. Добавление страниц на главную страницу по умолчанию
  4. Добавить файл класса в код приложения , где вы можете отобразить динамическую мастер-страницу

Добавить этот класс в App_Code

public class DynamicPage : System.Web.UI.Page
    {
        protected override void OnPreInit(EventArgs e)
        {
            string masterfile = getMasterPageFromDatabase();
            if (!masterfile.Equals(string.Empty))
            {
                base.MasterPageFile = masterfile;
            }
            base.OnPreInit(e);
        }

        private string getMasterPageFromDatabase()
        {
            // check the conditions "manager.master/Admin.master"
            return "Admin.master";
        }
    }

при переходе к файлу .cs для default.aspx.cs это будет " System.Web.UI.Page ", замените его на DynamicPage

public partial class _Default : **System.Web.UI.Page**
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

наконец-то получается

 public partial class _Default : **DynamicPage**
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

отдых произойдет автоматически сопоставляется

надеюсь, это поможет !!!

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