2016-12-01 2 views
3

У меня есть несколько веб-форм в моем проекте. Это простой проект. Проверка подлинности пользователя производится путем проверки правильного имени пользователя и пароля и роли из базы данных. В случае Page_Load для каждой веб-страницы, я добавил этот код:проверить для входа на каждую страницу

protected void Page_Load(object sender, EventArgs e) 
     { 
      try 
      { 
       if (Session["username"] == null & Session["role"] == null) 
       { 
        Response.Redirect("WebLogin.aspx", false); 
        Context.ApplicationInstance.CompleteRequest(); 
       } 
      } 
      catch (Exception ex) { } 
     } 

так, что если кто-то пытается перейти к определенной веб-страницы с помощью URL, он будет проверять имя пользователя и роли. Если он равен нулю, перенаправите его на страницу входа.

Пожалуйста, можете ли вы предложить любой другой способ сделать это, более эффективным. Это очень непрофессионально, чтобы добавить этот код в каждый код за страницей.

ответ

2

Создать новый класс PageBase, который наследуется класс страницы и переопределить метод OnLoad для этого добавьте входе проверить код

public abstract class PageBase : Page 
{ 
    protected override void OnLoad(EventArgs e) 
    { 
     if (Session["username"] == null & Session["role"] == null) 
      { 
       Response.Redirect("WebLogin.aspx", false); 
       Context.ApplicationInstance.CompleteRequest(); 
      } 
     } 

теперь для каждого из ваших форм просто изменить страницу класса:

public partial class HomePage : Page 

to PageBase li ка это:

public partial class HomePage : PageBase 

Это сделает ваш код более организованным и чистая

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