2015-11-03 3 views
0

У меня есть страница входа, который проверки пользователей и пароли из файла XML, сначала я установить строку, я буду использовать с сеансами затем проверить, если пользователь существуетпроверка сеанса ASP.NET отрицает доступ к странице

string roleCheck = ""; 

      string userName = node.SelectSingleNode("username").InnerText; 
     string passWord = node.SelectSingleNode("password").InnerText; 
     string isAdmin = node.SelectSingleNode("role").InnerText; 

     if (isAdmin == "admin" && userName == TextBoxUsername.Text && passWord == TextBoxPassword.Text) 
     { 
      roleCheck = "admin"; 
      Session["RoleCheck"] = roleCheck; 
      Response.Redirect("admin.aspx"); 
     } 

Теперь вот где он выходит из строя, то кажется, что я могу получить доступ к admin.aspx даже без входа в систему, у меня есть это в Page_Load на admin.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
     if (Session["RoleCheck"] == "") 
     { 
      Response.Redirect("login.aspx"); 
     } 
} 

не должны это перенаправление не зарегистрированных пользователей?

ответ

0

Нет, потому что он проверяет ли Session является пустая строка, но здесь, Session имеет нулевое значение, то есть не пустая строка. Следовательно, условие не выполняется.

Вы должны проверить Session на нуль, а не на пустую строку.

if(Session["RoleCheck"] == null) 
{ 
    // redirect 
} 
+0

это не работает –

+0

Вы имеете в виду, что это не перенаправление? – Imad

+0

Да, я изменил строку на null, и она все еще ничего не делает –

0

Вам нужно проверить, что только сеанс имеет значение null, как показано ниже. не проверять пустой или пустой.

protected void Page_Load(object sender, EventArgs e) 
{ 
     if (!IsPostBack) 
     { 
      if (Session["RoleCheck"] == null) 
      { 
       Response.Redirect("login.aspx"); 
      } 
     } 
    } 
+0

Это должно работать, но это не делает его, как будто он игнорирует Page_Load при движении в admin.aspx –

+0

попробовать добавить «если (! IsPostBack)» перед тем, если состояние и проверить. –

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