0

This is really strange, but I originally had a Visual Studio 2008 web forms application that I upgraded to .Net 4 but the IDE is Visual Studio 2012.

My membership system worked great before the upgrade, now it is completely broken.

I actually recreated the login controls, login, password recovery, register in an Account folder. I changed the reference to my login path in web.config.

I also checked the Asp.net configuration page to see if it sees my users and YES it does. However when I attempt to login, it reports back a failure. I verified the username was correct and just in case somehow the password changed, I tried using the password recovery form.

The password recovery form reports back that it can't find the user name. I have triple checked that the user name (an email address) is correct, in both the configuration and the database. It's there and spelled right.

What is going on???

Thanks

<configuration>
  <appSettings>
    <add key="FolderPath" value="xCellFiles/" />
    <add key="aspnet:MaxHttpCollectionKeys" value="2000" />
  </appSettings>
  <connectionStrings>
    <clear />
    <add name="SalonConnectionString" connectionString="Data Source=76.71.167.122;Initial Catalog=databasename;User Id=id;Password=Password" providerName="System.Data.SqlClient" />
    <add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR={1}'" />
    <add name="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 8.0;HDR={1}'" />
  </connectionStrings>
  <system.web>
    <healthMonitoring enabled="true">
      <eventMappings>
        <clear />
        <!-- Log ALL error events -->
        <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647" />
        <!-- Log application startup/shutdown events -->
        <add name="Application Events" type="System.Web.Management.WebApplicationLifetimeEvent" startEventCode="0" endEventCode="2147483647" />
      </eventMappings>
      <providers>
        <clear />
        <!-- Provide any customized SqlWebEventProvider information here (such as a different connection string name value -->
        <add connectionStringName="SalonConnectionString" maxEventDetailsLength="1073741823" buffer="false" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" />
      </providers>
      <rules>
        <clear />
        <add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
        <add name="Application Events Default" eventName="Application Events" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" />
      </rules>
    </healthMonitoring>
    <!-- reduces size of http response (removes x-aspnet-version) -->
    <httpRuntime enableVersionHeader="false" />
    <trust level="Full" />
    <!--
            Set compilation debug="true" to insert debugging
            symbols into the compiled page. Because this
            affects performance, set this value to true only
            during development.

            Visual Basic options:
            Set strict="true" to disallow all data type conversions
            where data loss can occur.
            Set explicit="true" to force declaration of all variables.
        -->
    <compilation debug="true" strict="false" explicit="true">
      <assemblies>
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Services.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      </assemblies>
    </compilation>
    <pages>
      <namespaces>
        <clear />
        <add namespace="System" />
        <add namespace="System.Collections" />
        <add namespace="System.Collections.Generic" />
        <add namespace="System.Collections.Specialized" />
        <add namespace="System.Configuration" />
        <add namespace="System.Text" />
        <add namespace="System.Text.RegularExpressions" />
        <add namespace="System.Web" />
        <add namespace="System.Web.Caching" />
        <add namespace="System.Web.SessionState" />
        <add namespace="System.Web.Security" />
        <add namespace="System.Web.Profile" />
        <add namespace="System.Web.UI" />
        <add namespace="System.Web.UI.WebControls" />
        <add namespace="System.Web.UI.WebControls.WebParts" />
        <add namespace="System.Web.UI.HtmlControls" />
      </namespaces>
      <controls>
        <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>
    <!--<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />-->
    <!-- Gets and sets the amount of time, in minutes, allowed between requests before the session-state provider terminates the session.
    Default is 20 minute.
    -->
    <sessionState mode="InProc" cookieless="AutoDetect" timeout="900" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" enableCrossAppRedirects="true" slidingExpiration="true" cookieless="AutoDetect" timeout="900" defaultUrl="/Stylist/Redirecting.aspx" name=".ASPXAUTH" />
    </authentication>
    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
      <providers>
        <add name="XmlSiteMapProvider" description="SiteMap provider which reads in .sitemap XML files." type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="Web.sitemap" securityTrimmingEnabled="true" />
      </providers>
    </siteMap>
    <!--
            The <authentication> section enables configuration
            of the security authentication mode used by
            ASP.NET to identify an incoming user.
        -->
    <!--
            The <customErrors> section enables configuration
            of what to do if/when an unhandled error occurs
            during the execution of a request. Specifically,
            it enables developers to configure html error pages
            to be displayed in place of a error stack trace.
            <customErrors mode="On" defaultRedirect="ErrorPage.aspx">
    <error statusCode="404" redirect="LoginReg.aspx" />
</customErrors>
   -->
    <customErrors defaultRedirect="~/GeneralErrorPage.aspx" mode="Off">
    </customErrors>
    <trace enabled="false" requestLimit="15" pageOutput="false" traceMode="SortByTime" localOnly="true" />
    <membership defaultProvider="SalonSqlMembershipProvider">
      <providers>
        <clear />
        <add name="SalonSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider"
             connectionStringName="SalonConnectionString"
             enablePasswordRetrieval="false" enablePasswordReset="true"
             requiresQuestionAndAnswer="true" applicationName="/Service2020"
             requiresUniqueEmail="false" passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10" passwordStrengthRegularExpression="^.*(?=.{6,})(?=.*\d).*$" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="SalonNetRoleProvider">
      <providers>
        <clear />
        <add name="SalonNetRoleProvider" connectionStringName="SalonConnectionString" applicationName="/Service2020" type="System.Web.Security.SqlRoleProvider,                           &#xA;             System.Web,&#xA;                                             Version=2.0.0.0,&#xA;                                             &#xA;                                       Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
  </system.web>
  <location path="ChangePassword.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="PasswordRecovery.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <system.net>
    <mailSettings>
      <smtp from="mail@address.com">
        <network host="mail.address.com" password="password" userName="mail@address.com" />
      </smtp>
    </mailSettings>
  </system.net>
  <!--
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->
  <!--<system.web.extensions>
      <scripting>
         <webServices>
            <authenticationService enabled="true" />
         </webServices>
      </scripting>
   </system.web.extensions>-->
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <!--<httpErrors errorMode="Custom">
      <remove statusCode="404" />
      <error statusCode="404" path="UnauthorizedAccess.aspx" responseMode="Redirect" />
    </httpErrors>-->
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="UrlRoutingHandler" />
    </handlers>
    <!--<staticContent> when getting ready to beta include in release
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
    </staticContent>-->
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
    </staticContent>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="AjaxControlToolkit" publicKeyToken="28f01b0e84b6d53e" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.7.123" newVersion="3.5.7.123" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>  
4

1 回答 1

0

根据以下微软链接

散列算法

http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770148 

根配置

http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770149

主文档链接

http://www.asp.net/whitepapers/aspnet4/breaking-changes

您安装了哪个 SP 真的很重要,因为它可能决定您采取哪种方式解决问题的结果。此外,您还需要知道是否安装了 KB958854修补程序,您可以通过查看添加/删除程序列表来找到它(查看已安装的更新 - 该窗口的左上角)

也可能是简单的测试(首先),您可以将以下元素添加到 SYSTEM.WEB 部分下的配置文件中

<machineKey validation="SHA1" />

这会将散列算法恢复为较旧的格式 HMACSHA1 而不是较新的算法 HMACSHA256 如果可以修复它,如果不是简单地再次删除元素。

于 2013-04-30T17:41:54.937 回答