Пример #1
0
// 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();
			}
		}
Пример #2
0
 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;
 }
Пример #3
0
		/// <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;
		}