2011-01-20 123 views
5

我面临的一个奇怪的问题ASP.Net Web应用程序安全不工作在IIS 7上?

我使用Visual Studio 2010,SQL赢服务器2008

上表示2008年运行安全向导(创建一个用户后,设置权限一样拒绝匿名,并允许创建的用户)并按下F5 - >该网站工作得很好。

当我将文件夹移动到IIS 7和“转换为应用程序”的登录页面出现,但它不会接受我提供的密码。

我被告知只有Stackoverflow天才会回答这个问题。

我使用的.Net 4,manged pipleine模式 - > inegrated

IIS设置:

匿名验证。 - > Enabled

Forms Auth。 - >已启用

ASP.Net模拟,基本身份验证,摘要验证,Windows验证 - >禁用

的web.config

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated  Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
    <authorization> 
     <deny users="?"/> 
     <allow users="statmaster"/> 
    </authorization> 
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="2880"/> 
    </authentication> 

    <membership> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"  enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/> 
     </providers> 
    </membership> 

    <profile> 
     <providers>  
     <clear/>  
     <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> 
     </providers> 
    </profile> 
    <roleManager enabled="false"> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"  connectionStringName="ApplicationServices" applicationName="/"/> 

     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/> 
     </providers> 
    </roleManager> 
    </system.web> 

    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

</configuration> 

的用户名在aspnet_Users表格内和用户名存在在aspnet_Membership表

+0

什么验证你有虚拟目录设置?你在web.config中指定了哪些认证? – slugster 2011-01-20 08:23:55

回答

4

“加密” 阅读文章

Always set the "applicationName" property when configuring ASP.NET 2.0 Membership and other Providers

尝试创建一个新的网站,并把应用程序组件的根在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="LocalSqlServer" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresQuestionAndAnswer="true" 
    requiresUniqueEmail="false" 
       passwordFormat="Hashed" 
       maxInvalidPasswordAttempts="5" 
       minRequiredPasswordLength="7" 
       minRequiredNonalphanumericCharacters="1" 
       passwordAttemptWindow="10" 
       passwordStrengthRegularExpression="" 
       applicationName="/" 
      /> 
     </providers> 
    </membership> 

http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx

相关问题