2013-09-29 22 views
-2

我有一個SQL數據庫名爲「administration」,帶有用戶名和角色。ASP.NET - C# - 檢索用戶名並與SQL數據庫進行比較

我想用我的ASP.NET應用程序需要做的是:

一旦有人訪問我的內部網站上,我得到使用

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

然後我檢查,如果該用戶名是他們的用戶名在我的數據庫中。我想我可以用IF EXISTS聲明來做到這一點。

但是我不確定我會如何做以下操作:IF用戶在數據庫中我想根據他們的角色顯示網頁(即所有頁面不同Admin =查看所有內容和按鈕,用戶=全部內容無按鈕)。

但是,如果他們的用戶名不在我的數據庫中,我將顯示一個空白頁或沿着「訪問被拒絕」的行。

這是我被要求這樣做的方式,但我似乎無法解決這個問題。

可能嗎?

+0

當然這是可能的。我們是程序員。如果 - 然後條件將需要決定顯示什麼。但是更多的邏輯可以用'name','role'等查找變量來替代,存儲在用戶數據庫中的任何數據都可以成爲顯示變量。 – Renaissance

+1

你在說什麼是基於角色的安全性 - 人們只能看到他們分配的角色允許他們看到什麼。在MSDN上查看[基於角色的安全](http://msdn.microsoft.com/zh-cn/library/shz8h065.aspx)。 – Tim

回答

0

string userName = System.Security.Principal.WindowsIdentity.GetCurrent()。Name;

獲取用戶名後。

sqlconnection cn = new sqlconnection("give connectionstring"); 
cn.open(); 
    sqlcommand cmd = new sqlcommand(); 
    cmd.commandtext = "select * from "table"; // table name give. 
    cmd.connection = cn; 
    sqldatareader rdr = cmd.executereader(); 
    while(rdr.read()){ 
     if(stringName = rdr[columnnumber].toString()); 
      flag = true; 
    } 
    if(flag) 
    //take decesion 
    else 
    // take decesion. 
cn.close(); 

你可以這樣做。你可以使用。它。 bt在語法上有一些錯誤,我大致爲你寫。

相關問題