假设我使用正确的凭据调用以下方法:
private bool Connect(string username, string password)
{
string CONNSTRING = "Provider = MSDAORA; Data Source = ISDQA; User ID = {0}; Password = {1};";
OleDbConnection conn = new OleDbConnection();
string strCon = string.Format(CONNSTRING, username, password);
conn.ConnectionString = strCon;
bool isConnected = false;
try
{
conn.Open();
if (conn.State.ToString() == "Open")
isConnected = true;
}//try
catch (Exception ex)
{
lblErr.Text = "Connection error";
}//catch
finally
{
conn.Close();
}//finally
return isConnected;
}
我已通过以下方法成功打开连接:
private bool ValidateUserCode(string usercode)
{
UserAccountDefine def = new UserAccountDefine();
UserAccountService srvc = new UserAccountService();
UserAccountObj obj = new UserAccountObj();
bool returnVal = false;
bool isValid = Connect(def.DB_DUMMY_USERCODE, def.DB_DUMMY_PASSWORD);
if (isValid)
{
obj.SQLQuery = string.Format(def.SQL_LOGIN, usercode.ToLower(), DateTime.Now.ToString("MM/dd/yyy"));
DataTable dt = srvc.Execute(obj, CRUD.READALL);
if (dt.Rows.Count == 1)
{
returnVal = true;
}
}
return returnVal;
}
问题是我如何确定连接状态ValidateUserCode()
方法?
之后我该如何关闭它?
笔记:
我在中显式声明了字符串变量UserAccountDefine();
所以你不必担心这个。
我已经尝试声明一个新的OleDbConnection conn
在 - 的里面ValidateUserCode()
到但conn.State
总是回来"Closed"
.
UPDATE
我有一个具有 2 层安全功能的系统。第一个是应用程序,第二个是数据库。如果用户登录应用程序,用户名和密码也用于将他/她登录到数据库中。现在,情况是当用户忘记了他/她的密码时,我们无法确定fullname
, email
and contact
(在数据库中维护)用户的。我只知道他的usercode
。要确定联系方式,我必须使用打开一个活动连接DUMMY_ACCOUNT
.
请注意,我从不维护数据库内的密码。