2011-01-20 14 views
5

Estoy frente a un problema extrañoLa seguridad de las aplicaciones Web ASP.Net no funciona en IIS 7?

i utilizar Visual Studio 2010, SQL Express 2008 en el servidor de la victoria 2008

después de ejecutar el asistente de seguridad (usuario único creado, establecer permisos al igual que niegan el anonimato y permitir que el usuario creado) y presionando F5 -> el sitio funciona bien.

cuando muevo la carpeta a IIS 7 y "convierte a la aplicación" aparece la página de inicio de sesión pero no acepta la contraseña que proporcioné.

me dijeron que solo los genios de Stackoverflow responderán esta pregunta.

lo estoy usando .Net 4, manejadas modo pipleine -> inegrated

configuración de IIS:

Anónimo Auth. -> Habilitado

Forms Aut. -> Activado

ASP.Net suplantación, autenticación básica, implícita autenticación, Windows autenticación -> minusválidos

web.config existe

<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> 

el nombre de usuario en la tabla y el nombre de usuario aspnet_Users "cifrado" en la tabla aspnet_Membership

+0

Lo autenticación ¿tiene configurado en el directorio virtual? ¿Y qué autenticación ha especificado en el archivo web.config? – slugster

+0

@slugster: revisa mi edición – statmaster

+0

Mira, no estoy seguro, pero dijo que han pasado 4 horas desde que hiciste esta pregunta y todavía no recibes una sola respuesta, entonces te sugiero que trates de darnos más información, ya que no podía señalar cualquier cosa (¡sin pretender ser un experto!). Verifique los registros de IIS y del sitio. La respuesta es obviamente en algún lado. – Poni

Respuesta

4

Lea el artículo

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

intente crear un nuevo sitio web y poner el componente de aplicación en la raíz, en caso nombre de la aplicación web.config = "/"

espero que esto lo resolverá

<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

Cuestiones relacionadas