2013-05-22 137 views
0

我必須創建一個基於角色的應用程序,其中我有三個角色管理員,經理和用戶。在我的應用程序中,我有三個不同的文件夾,我必須檢查這些角色。我想要的是,當我在登錄頁面輸入憑證時,首先會檢查用戶是否被授權,如果沒有,則重定向到錯誤頁面。如果授權,則檢查其角色並授予對指定文件夾的訪問權限。基於角色的身份驗證與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我有有

  • 用戶名
  • 用戶名
  • 表登錄
  • 密碼
  • 角色ID

我有什麼變化,我的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身份驗證,我仍然會閱讀上述鏈接的文章,因爲它們會爲您提供大量關於身份驗證如何工作的有用信息。要使用ASP.NET使用Windows身份驗證閱讀:

Windows Authentication in ASP.NET

+0

感謝您的答覆 – amitesh

+0

馬克彷彿它有助於一個答案? :) – Jammer

+0

這是爲表單身份驗證我想使用窗口認證,因爲我的應用程序是一個Intranet應用程序。你能給我提供一些窗口認證的鏈接嗎 – amitesh

相關問題