2012-02-10 92 views
1

什么,我试着做的是如何为不同用户提供具有相同登录页面的不同用户页面?

我有共同的登录页面有4个用户每个人都有不同的角色 和我有一个辛格运河主网页,我有不同的contorls .....如何提供身份验证自己与分配给them..regarding上thier角色,他们应该被引导到指定网页的页面contorls ....

 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 

applys同样为所有用户

任何一个可以帮我... ...刨,我不知道从哪里开始....

+0

... – Madhu 2012-02-10 08:36:40

回答

2

试一试的按钮根据您的要求,你需要动态地添加母版页上的控件...建立根据登录四种不同的控件和加载基于登录角色掌握页点击

   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

有这个方法简单的方法是如下的步骤,你可以按照

  1. 保持一个默认的母版页//(“MasterPage.master”)
  2. 根据需要添加尽可能多的母版页// “manager.master/Admin.master”
  3. 添加到页面的默认母版页
  4. 添加类文件中的app_code其中u可以映射动态母版

在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) 
     { 

     } 
    } 

其余部分将发生自动映射

希望这有助于!