【问题标题】:Asp.net Membership Provider custom CreateUserAsp.net Membership Provider 自定义 CreateUser
【发布时间】:2011-08-10 14:52:40
【问题描述】:

我正在尝试让我的自定义“CREATEUSER”工作,但我认为我的 web.config 有问题。感谢这里的帮助,我已经编写了 MEMBERSHIP 部分,但是我的 MEMBERSHIP.CREATEUSER 命令无法登录到数据库。错误是“无法登录到默认数据库”。我添加了一个连接字符串,名称在我的部分中。但我被困住了。

Here is the code-behind file for creating the user:

        protected void submit_Click(object sender, EventArgs e)
        {

                Membership.CreateUser(userName.Text, passwdConfirm.Text, email.Text);

        }

还有,这是我的 Web.config 文件。

<configuration>

  <connectionStrings>
      <add name="FVTCEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SFP;attachdbfilename=H:\ASP.Net\FVRG\FVRG\App_Data\FVTC.mdf;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
      <add name="dbMembership" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=H:\ASP.Net\FVRG\FVRG\App_Data\ASPNETDB.MDF;User Instance=true" providerName="System.Data.SqlClient" />
  </connectionStrings>
    <system.web>
        <authorization>
            <allow roles="ADMIN" />
            <allow roles="GUEST" />
        </authorization>
        <roleManager enabled="true" />
        <authentication mode="Forms" />
        <compilation debug="true" targetFramework="4.0" />

      <membership>

        <providers>
          <clear/>
          <add name="AspNetSqlMembershipProvider"
                type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                connectionStringName="dbMembership"
                enablePasswordRetrieval="false"
                enablePasswordReset="true"
                requiresQuestionAndAnswer="false"
                requiresUniqueEmail="true"
                passwordFormat="Hashed"
                maxInvalidPasswordAttempts="5"
                minRequiredPasswordLength="7"
                minRequiredNonalphanumericCharacters="1"
                passwordAttemptWindow="10"
                passwordStrengthRegularExpression=""
                applicationName="/FVRG" />
        </providers>

      </membership>
    </system.web>

  <appSettings>
    <add key="DatabaseConnection" value="Data Source=.\SQLEXPRESS;AttachDbFilename=H:\ASP.Net\FVRG\FVRG\App_Data\FVTC.mdf;Integrated Security=True;User Instance=True" />
  </appSettings>
</configuration>

提前感谢您的帮助!

【问题讨论】:

  • 你能确认连接字符串是正确的吗?您指定的 conncectionStringName 是“dbMembership”,但我看不到它,因为您只在代码中包含了 。
  • 我已插入完整的 Web.config 文件。

标签: asp.net web-config membership-provider createuser


【解决方案1】:

该错误通常是由于用于访问数据库的帐户引起的。数据库中的每个帐户设置都有一个默认数据库,该用户的默认数据库设置要么不存在,要么用户无权访问它。这必须在数据库服务器上完成。

HTH。

【讨论】:

  • 我已经粘贴了完整的 Web.config,其中确实显示了连接字符串。我使用 SQLExpress 作为我的 SQL 服务器,您如何添加用户访问权限?它确实在我的服务器资源管理器中的数据库列表中显示为数据库。
  • 哦,我错过了。如果你还没有搞砸数据库,我不确定你为什么会收到错误,因为如果你读过你就会知道错误。也许错误是数据库未正确连接。说的就是默认数据库是当前登录用户到SQL数据库无法读取的数据库.....错误类似这样:weblogs.asp.net/jeffwids/archive/2010/02/19/…
  • 嗨,Brian ...您可以同时登录/连接到 2 个不同的 SALExplress 数据库吗?我有我的 FVTC(餐厅)数据库和我的 ASPNETDB(会员提供者)数据库。我需要管理连接/断开连接吗?如果我不使用我的自定义 createuser 控件,这一切似乎都可以工作。
  • 不,您不应该这样做,但我不知道多个数据库附件如何工作;不过,您可以使用 aspnet_regsql.exe 实用程序将所有成员表编写到您的 FVTC 数据库中。
猜你喜欢
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多