ASP.NET FormsAuthentication.Authenticate()无法正常工作

时间:2009-08-19 16:36:49

标签: asp.net forms-authentication

我使用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);总是返回false。

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

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

if (success)
{
}

可能是什么问题?

1 个答案:

答案 0 :(得分:3)

你需要添加例如一个MembershipProvider configuration或直接将用户添加到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>