// REMOVE ME: #region method AuthUser /// <summary> /// Authenticates user. /// </summary> /// <param name="userName">User name.</param> /// <param name="passwData">Password data.</param> /// <param name="authData">Authentication specific data(as tag).</param> /// <param name="authType">Authentication type.</param> /// <returns></returns> public DataSet AuthUser(string userName,string passwData,string authData,AuthType authType) { m_UpdSync.AddMethod(); DataSet retVal = new DataSet(); DataTable dt = retVal.Tables.Add("Result"); dt.Columns.Add("Result"); dt.Columns.Add("ReturnData"); DataRow drx = dt.NewRow(); drx["Result"] = "false"; drx["ReturnData"] = ""; dt.Rows.Add(drx); try{ // See if user with specified name exists foreach(DataRow dr in dsUsers.Tables["Users"].Rows){ if(Convert.ToBoolean(dr["Enabled"]) && dr["USERNAME"].ToString().ToLower() == userName.ToLower()){ string password = dr["PASSWORD"].ToString().ToLower(); switch(authType) {/* case AuthType.APOP: if(AuthHelper.Apop(password,authData) == passwData){ drx["Result"] = "true"; return retVal; } break; case AuthType.CRAM_MD5: if(AuthHelper.Cram_Md5(password,authData) == passwData){ drx["Result"] = "true"; return retVal; } break;*/ case AuthType.DIGEST_MD5: Auth_HttpDigest digest = new Auth_HttpDigest(authData,"AUTHENTICATE"); if(digest.Authenticate(userName,password)){ drx["Result"] = "true"; drx["ReturnData"] = digest.CalculateResponse(userName,password); return retVal; } break; case AuthType.Plain: if(password == passwData.ToLower()){ drx["Result"] = "true"; return retVal; } break; } return retVal; } } return retVal; } catch(Exception x){ throw x; } finally{ m_UpdSync.RemoveMethod(); } }
public DataSet AuthUser(string userName, string passwData, string authData, AuthType authType) { this.m_UpdSync.AddMethod(); DataSet dataSet = new DataSet(); DataTable dataTable = dataSet.Tables.Add("Result"); dataTable.Columns.Add("Result"); dataTable.Columns.Add("ReturnData"); DataRow dataRow = dataTable.NewRow(); dataRow["Result"] = "false"; dataRow["ReturnData"] = ""; dataTable.Rows.Add(dataRow); DataSet result; try { foreach (DataRow dataRow2 in this.dsUsers.Tables["Users"].Rows) { if (Convert.ToBoolean(dataRow2["Enabled"]) && dataRow2["USERNAME"].ToString().ToLower() == userName.ToLower()) { string text = dataRow2["PASSWORD"].ToString().ToLower(); if (authType != AuthType.Plain) { if (authType == AuthType.DIGEST_MD5) { Auth_HttpDigest auth_HttpDigest = new Auth_HttpDigest(authData, "AUTHENTICATE"); if (auth_HttpDigest.Authenticate(userName, text)) { dataRow["Result"] = "true"; dataRow["ReturnData"] = auth_HttpDigest.CalculateResponse(userName, text); result = dataSet; return result; } } } else { if (text == passwData.ToLower()) { dataRow["Result"] = "true"; result = dataSet; return result; } } result = dataSet; return result; } } result = dataSet; } catch (Exception ex) { throw ex; } finally { this.m_UpdSync.RemoveMethod(); } return result; }
/// <summary> /// Authenticates user. /// </summary> /// <param name="userName">User name.</param> /// <param name="passwData">Password data.</param> /// <param name="authData">Authentication specific data(as tag).</param> /// <param name="authType">Authentication type.</param> /// <returns></returns> public DataSet AuthUser(string userName,string passwData,string authData,AuthType authType) { DataSet retVal = new DataSet(); DataTable dt = retVal.Tables.Add("Result"); dt.Columns.Add("Result"); dt.Columns.Add("ReturnData"); DataRow drx = dt.NewRow(); drx["Result"] = "false"; drx["ReturnData"] = ""; dt.Rows.Add(drx); using(WSqlCommand sqlCmd = new WSqlCommand(m_ConStr,"lspr_GetUserProperties")){ sqlCmd.AddParameter("_userName",NpgsqlDbType.Varchar,userName); DataSet ds = sqlCmd.Execute(); ds.Tables[0].TableName = "Users"; if(ds.Tables["Users"].Rows.Count > 0){ string password = ds.Tables["Users"].Rows[0]["PASSWORD"].ToString().ToLower(); switch(authType) { case AuthType.APOP: if(AuthHelper.Apop(password,authData) == passwData){ drx["Result"] = "true"; return retVal; } break; case AuthType.CRAM_MD5: if(AuthHelper.Cram_Md5(password,authData) == passwData){ drx["Result"] = "true"; return retVal; } break; case AuthType.DIGEST_MD5: Auth_HttpDigest digest = new Auth_HttpDigest(authData,"AUTHENTICATE"); if(digest.Authenticate(userName,password)){ drx["Result"] = "true"; drx["ReturnData"] = digest.CalculateResponse(userName,password); return retVal; } break; case AuthType.Plain: if(password == passwData.ToLower()){ drx["Result"] = "true"; return retVal; } break; } } } return retVal; }