我開發了一個內聯網基於web的應用程序,它運行良好。該系統只針對我公司的一個部門。來自本部門之外的任何用戶在嘗試瀏覽系統時都會收到錯誤頁面。系統將通過將他的網絡ID傳遞給Active Directory來檢查用戶信息,並從那裏獲取他的信息。爲此,我創建了一個名爲Security的類。 然後我把我的母版頁以下:檢查數據庫中是否存在用戶?
if (Security.isMember(netID))
{
................
}
else
Response.Redirect("Error.aspx");
後臺代碼:
public static bool isMember(string userid)
{
if (Org.Code == "Org. Code")
return true;
else
return false;
}
由於用戶會是他第一次瀏覽到後添加到數據庫網站,我想修改安全類中的以前的方法來檢查用戶是否存在於數據庫中。如果不是,系統應該使用安全類來檢查用戶是否屬於該部門。我不知道是誰在前面的方法中爲數據庫中的用戶存在檢查代碼。你能幫我解決嗎?
我檢查用戶的存在在數據庫初始化代碼:
if (!String.IsNullOrEmpty(userid))
{
string username = userid;
string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=Test;Integrated Security=True";
string cmdText2 = "SELECT Count(*) FROM employee WHERE Username = '" + username + "'";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
// Open DB connection.
using (SqlCommand cmd = new SqlCommand(cmdText2, conn))
{
cmd.ExecuteScalar();
}
}
}
是通過方法的安全類修飾是這樣的:
public static bool isMember(string userid)
{
if (!String.IsNullOrEmpty(userid))
{
string username = userid;
string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=Test;Integrated Security=True";
string cmdText2 = "SELECT Count(*) FROM employee WHERE Username = '" + username + "'";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
// Open DB connection.
using (SqlCommand cmd = new SqlCommand(cmdText2, conn))
{
cmd.ExecuteScalar();
}
}
return true;
}
else if (Org.Code == code)
return true;
else
return false;
}
但是通過這樣做,即使他們不在該部門,該系統對所有人開放。 那麼如何解決這個問題呢?
如果正在執行'else if',則將userid作爲空字符串傳遞。 – fofik