ASP.NET FormsAuthentication.Authenticate () не работает - PullRequest
2 голосов
/ 19 августа 2009

Я создал пользователя с помощью CreateUserWizard - control.

Мой web.config файл выглядит следующим образом:

<?xml version="1.0"?>

<configuration>

  <appSettings/>

  <connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="ConnString1" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=IceWebPortal_SQL2K5;user=sa;password=;integrated security=true;" providerName="System.Data.SqlClient"/>
    <add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=aspnet_membership_test;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

  <system.web>
      <!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
      -->
      <compilation debug="true" />
      <!--
          The <authentication> section enables configuration
          of the security authentication mode used by
          ASP.NET to identify an incoming user.
      -->
    <authentication mode="Forms">
      <forms
        name="CookieDemo"
        loginUrl="Default.aspx"
        protection="All"
        timeout="30"
        path="/"
      />
    </authentication>
    <!--<authorization>
      <deny users="?"/>
    </authorization>-->
  </system.web>

  <location path="Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"></allow>
      </authorization>
    </system.web>
  </location>
</configuration>

Я обнаружил, что FormsAuthentication.Authenticate(username, password); всегда возвращает ложь.

string username = this.usernameTextBox.Text;
string password = this.passwordTextBox.Text;

bool success = FormsAuthentication.Authenticate(username, password);

if (success)
{
}

В чем может быть проблема?

1 Ответ

3 голосов
/ 19 августа 2009

Вы должны добавить, например, Конфигурация MembershipProvider или добавление пользователей напрямую в web.config (что, вероятно, не очень хорошая идея) -

Пример:

<membership>
    <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             requiresUniqueEmail="false"
             passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10"
             passwordStrengthRegularExpression=""
             applicationName="/" />
    </providers>
</membership>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...