2017-01-17 7 views
0

У меня есть приложение, использующее аутентификацию на основе форм. Я никогда не использовал это раньше. Ниже приведен пример пример кода:Forms Authetnication работает с Forms Authentication disabled in IIS

private bool ValidateUser(string userName, string password, string strConnectionString) 
     { 
      SqlConnection conn; 
      SqlCommand cmd; 
      string lookupPassword = null; 

      // Check for invalid userName. 
      // userName must not be null and must be between 1 and 15 characters. 
      if ((null == userName) || (0 == userName.Length) || (userName.Length > 15)) 
      { 
       System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of userName failed."); 
       return false; 
      } 

      // Check for invalid passWord. 
      // passWord must not be null and must be between 1 and 25 characters. 
      if ((null == passWord) || (0 == passWord.Length) || (passWord.Length > 25)) 
      { 
       System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of passWord failed."); 
       return false; 
      } 

      try 
      { 
       // Consult with your SQL Server administrator for an appropriate connection 
       // string to use to connect to your local SQL Server. 
       //conn = new SqlConnection(connectionstringremoved); 
       conn = new SqlConnection(strConnectionString) 

       conn.Open(); 
       Error.Text = "Got here"; 

       // Create SqlCommand to select pwd field from users table given supplied userName. 
       cmd = new SqlCommand("Select pwd from users where [email protected]", conn); 
       cmd.Parameters.Add("@userName", SqlDbType.VarChar, 25); 
       cmd.Parameters["@userName"].Value = userName; 

       // Execute command and fetch pwd field into lookupPassword string. 
       lookupPassword = (string)cmd.ExecuteScalar(); 

       // Cleanup command and connection objects. 
       cmd.Dispose(); 
       conn.Dispose(); 
      } 
      catch (Exception ex) 
      { 
       // Add error handling here for debugging. 
       // This error message should not be sent back to the caller. 
       System.Diagnostics.Trace.WriteLine("[ValidateUser] Exception " + ex.ToString()); 
       Error.Text = ex.ToString(); 

      } 

      // If no password found, return false. 
      if (null == lookupPassword) 
      { 
       // You could write failed login attempts here to event log for additional security. 
       return false; 
      } 

      // Compare lookupPassword and input passWord, using a case-sensitive comparison. 
      return (0 == string.Compare(lookupPassword, passWord, false)); 

     } 

Я опубликовал это приложение в IIS 6.1 и я заметил, что он работает независимо от того, включена ли Аутентификация с помощью форм или нет (он отключен в приведенном ниже случае).

enter image description here

У меня есть один и тот же вопрос о базовой аутентификации.

Я считаю, что это связано с анонимной аутентификацией, которая включена, то есть включение анонимной аутентификации также позволяет аутентификации по умолчанию по умолчанию - или что-то в этом роде. Однако я не могу найти документацию для поддержки этого утверждения.

ответ

0

У вас есть Анонимная аутентификация включена.

Это фактически означает, что у вас нет никакой аутентификации, поскольку Anonymous Authentication позволяет всем в

+0

Когда я включаю только проверку подлинности форм, есть ошибка:. Модуль фильтрации запросов настроен на отклонить запрос где запрос Строка слишком длинная. Это ответ на страницу 404.15. – w0051977

+0

Итак, это говорит нам о том, что аутентификация форм действительно срабатывает, и она больше не работает независимо от того, включена ли аутентификация форм или нет. Итак, теперь вам нужно перейти на следующий этап и выяснить, как обойти ваш ответ на 404.15 странице ... –

Смежные вопросы