(转) 建立自己的MemberShip数据库

建立自己的MemberShip数据库

这两天看到PetShop4.0中使用了MemberShip,这些数据存放在MSPetShop4Services数据库中。跟默认生成的 AspNetDB.mdf一样,都有11个表。有aspnet_Applicationsaspnet_MemberShip, aspnet_Paths, aspnet_Profile, aspnet_Roles等等。
我们能不能自己手动生成一个这样的数据库呢?我们简单的把这些表导进去,就可以在Asp.net2.0中方便的使用它们吗?答案是不行,因为除了这些表之外,还有40多个存储过程。那我们怎样才能建立自己的MemberShip数据库呢?可以使用工具生成MemberShip表。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe

建立数据库之后,需要对Web.config文件进行配置:

PetShop4.0中的配置)
<connectionStrings>

<!-- SQL connection string for Membership database -->

<add name="SQLMembershipConnString" connectionString="server=(local);user id=mspetshop;password=pass@word1;database=MSPetShop4Services;min pool size=4;max pool size=4;packet size=3072" providerName="System.Data.SqlClient"/>

</connectionStrings>

<system.web>

<membership defaultProvider="SQLMembershipProvider">

<providers>

<add name="SQLMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SQLMembershipConnString" applicationName=".NET Pet Shop 4.0" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed"/>

</providers>

</membership>

在这里,改动它的连接字符串就可以使用自己的MemberShip数据库了。

-----------------------------------------------------------------------------------------

续。。。。。

修改上面的配置文件,还是有莫名其妙的问题。Copy了Msdn上的一份配置(Roles ClassMembership.Providers Property)进行修改,终于OK了。下面是配置好的结果。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

  <connectionStrings>

    <add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />

    <add name="TempConnectionString" connectionString="Data Source=AYO;Initial Catalog=Temp;User ID=sa"

      providerName="System.Data.SqlClient" />

  </connectionStrings>

  <system.web>

    <authentication mode="Forms" />

    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">

      <providers>

       

        <add name="SqlProvider"

          type="System.Web.Security.SqlMembershipProvider"

          connectionStringName="TempConnectionString"

          enablePasswordRetrieval="false"

          enablePasswordReset="true"

          requiresQuestionAndAnswer="true"

          passwordFormat="Hashed"

          applicationName="/" />

      </providers>

    </membership>

 

    <roleManager defaultProvider="SqlProvider"

    enabled="true"

    cacheRolesInCookie="true"

    cookieName=".ASPROLES"

    cookieTimeout="30"

    cookiePath="/"

    cookieRequireSSL="false"

    cookieSlidingExpiration="true"

    cookieProtection="All" >

      <providers>

        <add

          name="SqlProvider"

          type="System.Web.Security.SqlRoleProvider"

          connectionStringName="TempConnectionString"

          applicationName="SampleApplication" />

      </providers>

    </roleManager>

  </system.web>

</configuration>

posted @ 2010-04-06 14:36  刘雨赣  阅读(818)  评论(0编辑  收藏  举报