2013-05-22 2 views
0

Мне нужно создать приложение на основе ролей, в котором у меня есть три роли admin, manager и user. В моем приложении у меня есть три разные папки, в которых я должен проверить эту роль. То, что я хочу, - это когда я вводим учетные данные на моей странице входа в систему, сначала он проверяет, разрешен ли пользователь или нет, а затем не перенаправляется на страницу с ошибкой. Если это разрешено, проверьте его роли и укажите доступ к указанной папке.авторизация на основе ролей с аутентификацией окна в asp.net

это мой Логин кодовую страницу:

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    String queryread = @"Select * from Login where UserName = '" + tbUserName.Text.ToLower() + "' and Password='"+ tbPassword.Text.ToLower() +"'"; 
    SqlConnection con = new SqlConnection(); 
    SqlDataReader read; 
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["BartConnectionString"].ConnectionString; 
    SqlCommand readdata = new SqlCommand(queryread, con); 
    try 
    { 
     con.Open(); 
     read = readdata.ExecuteReader(); 
     Boolean flag = false; 
     while (read.Read()) 
     { 
      String UserName = read["UserName"].ToString().ToLower(); 
      String password = read["Password"].ToString(); 
      if (tbUserName.Text.ToLower() == UserName) 
      { 
       if (tbPassword.Text.Trim() == password) 
       { 
         Session["UserID"] = UserName.ToString();        
         flag = true; 
       } 
      } 
     } 
     if (flag) 
     { 
      Response.Redirect("~/Supervisor/Form.aspx", false); 
     } 
     else 
     { 
      Response.Redirect("~/Error.aspx",false); 
     } 
    } 
    catch (Exception ex2) 
     { 
      Response.Write("Error"); 
     } 
    finally 
     { 
     if (con.State == System.Data.ConnectionState.Open) 
      con.Close(); 
     } 
    } 

в этом я проверить авторизацию пользователя в настоящее время я также хочу, чтобы проверить, какую роль этот пользователь имеет какие изменения я должен сделать в этом коде, чтобы проверить роли также

В моей SQL у меня есть таблицы, которые имеют логин

  • Идентификатор_пользователя
  • UserName
  • Пароль
  • Идентификатор роли

какие изменения я должен сделать в моем файле web.config. какое изменение я должен сделать на своей странице входа, чтобы проверить роль. Думаю, мой вопрос ясен вам, ребята.

Заранее спасибо

+1

Есть так много проблем с этим кодом, я не знаю, с чего начать. Я бы разобрал это, прежде чем переходить к проверке роли, чтобы быть честным. ДЕЙСТВИТЕЛЬНО хотите, чтобы вы строили SqlConnections в кодировке страниц ... ответ определенно не является BTW, вам также необходимо прочитать об атаках Sql Injection в первом случае. – Jammer

+0

@Jammer так что вы предлагаете sqlinjection и что еще? – amitesh

+0

Архитектура N-уровня, шаблон репозитория, EntityFramework, поставщик роли SQL. Список бесконечен. Если бы я пересмотрел этот код в своей команде, он был бы полностью отвергнут, как не подходящий для цели. Вы уже много сделали? – Jammer

ответ

1

Как я уже сказал в комментарии выше, я не принял бы этот код в проекте, я был управляющим, и вы должны быть очень осторожны, о том, как реализовать аутентификацию пользователя в приложении. Я хотел бы начать, имея хорошее чтение этого документа на сайте MSDN:

Security Basics and ASP.NET Support

Overview of Forms Authentication

Forms Authentication Configuration and Advanced Topics

После того как вы, что на месте вы можете взглянуть на роли в этой статье:

Authenticating Users with Forms Authentication

Существует много взять здесь, но чтение через них даст вам хорошую основу для начала.

Даже если вы хотите использовать проверку подлинности Windows, я все равно прочитал бы приведенные выше ссылки, так как они предоставят вам много полезной информации о том, как работает проверка подлинности в целом. Чтобы использовать проверку подлинности Windows с помощью ASP.NET прочитать:

Windows Authentication in ASP.NET

+0

спасибо за ваш ответ – amitesh

+0

Отметьте как ответ, если это поможет? :) – Jammer

+0

Это для проверки подлинности формы. Я хочу использовать аутентификацию окна, поскольку мое приложение является интрасети. Можете ли вы предоставить мне ссылку для проверки подлинности Windows? – amitesh

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