我开发了一个内联网基于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