我用sql2000+vs2005创建的一个网站,并使用login控件和asp.net网站管理工具来管理注册和登录由于一些问题我把网站目录由“个人网站” 改为了 “mysite” 后。 asp.net网站管理工具里原来的用户就没有了。(更改回原来的“个人网站”又可以看到 asp.net网站管理工具里原来的用户)
我想知道 ,如果我用vs2005重新发布“mysite”到服务器上,那我原来用vs2005发布的“个人网站“上的用户还能不能使用,如何解决这问题?

解决方案 »

  1.   

    原来的那些用户是存在App_Data目录下的ASPNETDB.mdf文件里的话,照理说敢个网站名应该还是能访问到才对。因为|DataDirectory|这东西会自动映射到站点的App_Data目录,寻着这个能找到ASPNETDB.mdf,应该能找到原来的用户注册信息的。如果是用aspnet_regsql配置一个Sql Server数据库支持Membership database的话那更是不会发生找不到的问题。要不你就在web.config时override原来的配置。
    如: (红色部分对应上就没问题了)
     <connectionStrings>
    <add name="保存用户信息的数据库连接字符串名" connectionString="server=***;database=***;uid=sa;pwd="
       providerName="System.Data.SqlClient" />
    </connectionStrings>
    <membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType="">
          <providers>
          <clear />
          <add connectionStringName="保存用户信息的数据库连接字符串名" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </providers>
        </membership>

    <roleManager enabled="true" cacheRolesInCookie="false" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="AspNetSqlRoleProvider" createPersistentCookie="false" maxCachedResults="25">
          <providers>
            <clear />
            <add connectionStringName="保存用户信息的数据库连接字符串" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </providers>
    </roleManager>
       <profile enabled="true" defaultProvider="AspNetSqlProfileProvider" inherits="" automaticSaveEnabled="true">
          <providers>
            <clear />
            <add connectionStringName="保存用户信息的数据库连接字符串" applicationName="/" name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </providers>
          <properties>
            <clear />         
    <add name="你的自定义Profile" type="System.String"/>
    </properties>
    </profile>
      

  2.   

    不要乱改文件名会产生很多意想不到的错误改了文件名后<% %>里面的内容有个 CodeFile="你的ASPX文件名.aspx.cs"
    如果有其他的还有其他的名字这些都要修改如果是从一个文件夹移动到另一个文件夹
    不仅aspx文件里的<% %>内容要改
    CS代码中的类名也要修改改了名字后只是文件夹名字改变了
    其他的都没有改变如果你把VS的文件夹名字改了试试
    直接打开VS还是能打开
    但是你从开始菜单的话就打不开了
    还有其他的未知错误,等等.......
    除非你把原理都弄懂了
    修改一个东西后
    知道哪些还需要修改如果不是很明白的话
    有一个简单的方法
    新建一个ASPX文件
    写入你想要的名字
    然后复制粘贴ASPX文件和CS中的代码
    这样就不会有错误产生了