2011-01-20 18 views
5

jestem w obliczu problemu dziwnyASP.Net Web Application Security nie działa w IIS 7?

Używam Visual Studio 2010, SQL Express 2008 na Windows Server 2008

po uruchomieniu kreatora bezpieczeństwa (utworzonego pojedynczego użytkownika, ustawić uprawnienia jak zaprzeczyć anonimowy i umożliwić utworzonego użytkownika) i naciśnięcie F5 -> strona działa dobrze.

Po przeniesieniu folderu do IIS 7 i "przekonwertowaniu do aplikacji" pojawia się strona logowania, ale nie akceptuję podanego hasła.

Powiedziano mi, że tylko geniusze Stackoverflow odpowiedzą na to pytanie.

używam .NET 4, manged tryb pipleine -> inegrated

ustawienia IIS:

Anonymous AUTH. -> Włączone

Forms Auth. -> Włączone

ASP.Net personifikacji, Basic Auth, Auth Digest, Windows Auth -> Disabled

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> 

nazwa użytkownika istnieje w tabeli aspnet_Users i nazwy użytkownika "zaszyfrowana" w aspnet_Membership tabeli

+0

Co uwierzytelnienie zostało ustawione w katalogu wirtualnym? A jakie uwierzytelnienie określiłeś w web.config? – slugster

+0

@ Slugster: sprawdź moją edycję – statmaster

+0

Nie jestem pewien, ale sprzymierzyłem się, to 4 godziny, odkąd zadałeś to pytanie i wciąż nie ma jednej odpowiedzi, sugeruję, żebyś spróbował dać nam więcej informacji, ponieważ nie mogłem wskazać cokolwiek (nie twierdząc, że jesteś ekspertem!). Sprawdź dzienniki IIS i witryny. Odpowiedź jest oczywiście gdzieś. – Poni

Odpowiedz

4

Przeczytaj artykuł

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

spróbuj utworzyć nową stronę internetową i umieścić komponent aplikacji w katalogu w przypadku web.config nazwy aplikacji = „/”

mam nadzieję, że to rozwiąże to

<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

Powiązane problemy