2015-10-30 2 views
0

Я создал сайт интрасети ASP.NET, у которого есть код для проверки уровней доступа пользователей для каждой страницы. Этот код помещается на событие Page_Load каждой страницы, где требуются ограничения.ASP.NET include file на странице_Load

После код помещаются на каждой странице, где только Администратор сотрудники & Catering должны иметь доступ к:

public partial class cat_suppliers : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString); 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_employee where emp_uname = @UserName", con); 
      cmd.Parameters.AddWithValue("@UserName", User.Identity.Name); 
      DataTable dt = new DataTable(); 
      SqlDataAdapter adp = new SqlDataAdapter(cmd); 
      adp.Fill(dt); 

      foreach (DataRow dr in dt.Rows) 
      { 
       if (dr["emp_role"].ToString() == "1") 
       { 
        lblmessage.Text = "Admin"; 
       } 
       else if (dr["emp_role"].ToString() == "3") 
       { 
        lblmessage.Text = "Catering"; 
       } 
       else 
       { 
        Response.Write("<script>alert('Only Catering staff are authorized to access this page!!!')</script>"); 
        Response.Write("<script>window.location.href='default.aspx';</script>"); 
       } 
      } 

      con.Close(); 
     } 

    } 
} 

следующего коду помещаются на каждой странице, где только Администратор & маркетинга персонал должен иметь доступ к:

public partial class mar_contractors : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString); 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_employee where emp_uname = @UserName", con); 
      cmd.Parameters.AddWithValue("@UserName", User.Identity.Name); 
      DataTable dt = new DataTable(); 
      SqlDataAdapter adp = new SqlDataAdapter(cmd); 
      adp.Fill(dt); 

      foreach (DataRow dr in dt.Rows) 
      { 
       if (dr["emp_role"].ToString() == "1") 
       { 
        lblmessage.Text = "Admin"; 
       } 
       else if (dr["emp_role"].ToString() == "2") 
       { 
        lblmessage.Text = "Marketing"; 
       } 
       else 
       { 
        Response.Write("<script>alert('Only Marketing staff are authorized to access this page!!!')</script>"); 
        Response.Write("<script>window.location.href='default.aspx';</script>"); 
       } 
      } 

      con.Close(); 
     } 

    } 
} 

В любом случае я могу поместить общий код в отдельный файл и включить его в событие Page_Load? Как и для страниц общественного питания.

 con.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_employee where emp_uname = @UserName", con); 
     cmd.Parameters.AddWithValue("@UserName", User.Identity.Name); 
     DataTable dt = new DataTable(); 
     SqlDataAdapter adp = new SqlDataAdapter(cmd); 
     adp.Fill(dt); 

     foreach (DataRow dr in dt.Rows) 
     { 
      if (dr["emp_role"].ToString() == "1") 
      { 
       lblmessage.Text = "Admin"; 
      } 
      else if (dr["emp_role"].ToString() == "3") 
      { 
       lblmessage.Text = "Catering"; 
      } 
      else 
      { 
       Response.Write("<script>alert('Only Catering staff are authorized to access this page!!!')</script>"); 
       Response.Write("<script>window.location.href='default.aspx';</script>"); 
      } 
     } 

     con.Close(); 

Любая помощь была бы очень признательна, спасибо.

+1

Создайте метод, который возвращает 'DataTable' и вызывает метод в вашем событии' Page_Load'. Что тебя останавливает? – Izzy

+0

Сделайте общую функцию типа DataTable, доступную через ваш сайт. Теперь вы можете вызвать этот метод в 'Page_Load'. – Prabhat

+0

Первый и третий кодовые блоки одинаковы. –

ответ

1

Вам нужно использовать наследование страницы в ASP.NET. Следующая ссылка поможет вам получить то же самое. Page Inheritance

Смежные вопросы