假设我使用正确的凭据调用以下方法:
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();
因此您不必担心。
我已经尝试在 toOleDbConnection conn
内部声明一个新的ValidateUserCode()
,但conn.State
总是返回"Closed"
。
更新
我有一个具有 2 层安全功能的系统。第一个在应用程序中,第二个在数据库中。如果用户登录到应用程序,用户名和密码也用于登录到数据库。现在,这种情况是当用户忘记他/她的密码时,我们无法确定用户的fullname
,email
和contact
(在数据库中维护)。我只知道他的usercode
。要确定联系方式,我必须使用DUMMY_ACCOUNT
.
请注意,我从不在数据库中维护密码。