Я создал сайт интрасети 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();
Любая помощь была бы очень признательна, спасибо.
Создайте метод, который возвращает 'DataTable' и вызывает метод в вашем событии' Page_Load'. Что тебя останавливает? – Izzy
Сделайте общую функцию типа DataTable, доступную через ваш сайт. Теперь вы можете вызвать этот метод в 'Page_Load'. – Prabhat
Первый и третий кодовые блоки одинаковы. –