стили, недоступные до и после проверки подлинности (проверка подлинности с помощью форм ASP.NET) - PullRequest
1 голос
/ 08 мая 2011

Я только что создал приложение с аутентификацией форм. Я не вижу свои стили в приложении (до того, как авторизоваться на Login.aspx NOR на странице после успешного входа в систему). Раньше они были доступны, когда приложение использовало проверку подлинности Windows.

Я прочитал другой форум, в котором говорилось, что вы должны предоставить доступ к папке App_Themes, содержащей css, до аутентификации, но прочитайте выше снова (я также не вижу их после аутентификации). Это работало раньше при использовании проверки подлинности Windows. Я принес другую библиотеку меню, так что теперь вы увидите 3 раздела.

Я использую Windows 7. О, и я щелкнул правой кнопкой мыши корневую папку, содержащую файлы моего сайта. Я добавил разрешения в группу IIS_IUSRS и IIS APPPOOL [APP POOL NAME] в IIS 7. Я дал все разрешения обоим. Кроме того, на моем сайте включена базовая аутентификация и аутентификация с помощью форм. Остальные отключены.

Спасибо, стек переполнения Geniouses !!

==========================

web.config

Параметр конфигурации Asp.Net в Visual Studio. Полный список настроек и комментариев можно найти в machine.config.comments обычно находится в \ Windows \ Microsoft.Net \ Framework \ v2.x \ Config ->
<compilation debug="true">
  <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>
<!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->

<!--<authentication mode="Forms">
  <forms cookieless="UseCookies" slidingExpiration="true"
         protection="All" timeout="60" loginUrl="~/Login.aspx">
  </forms>
</authentication>
<authorization>
  <deny users="?" />
  <allow users="*"/>
</authorization>-->

  <authentication mode="Forms">
      <forms name="WANTA-AUTHENTICATE"
             loginUrl="Login.aspx"
             protection="All"
             timeout="5"
             path="/">
          <credentials passwordFormat="MD5" />
      </forms>
  </authentication>
  <authorization>
      <allow users="*"/>
      <deny users="?" />
  </authorization>      



<customErrors mode="Off" defaultRedirect="Default.aspx">

</customErrors>

<pages>
  <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </controls>
</pages>
<httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

<!--  SESSION STATE SETTINGS
      By default ASP.NET uses cookies to identify which requests belong to a particular session. 
      If cookies are not available, a session can be tracked by adding a session identifier to the URL. 
      To disable cookies, set sessionState cookieless="true".
-->
<sessionState mode="InProc" timeout="55" />

<system.serviceModel>

<!--<serviceHostingEnvironment aspNetCompatibilityEnabled="true" >
  <baseAddressPrefixFilters>
    <add prefix="http://localhost/" />
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>-->

<behaviors>
  <endpointBehaviors>
    <behavior name="AspNetAjaxBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>

 <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
 </serviceBehaviors>
</behaviors>

<services>       
    <service name="Wanta.Toolkit.WantaService" behaviorConfiguration="ServiceBehavior">            
        <endpoint behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="Wanta.Toolkit.WantaService" />            
    </service>        
</services>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

==================

Login.aspx.cs

protected void Logon_Click(object sender, EventArgs e)
{
    if ((UserEmail.Text == "x") &&
            (UserPass.Text == "x"))
    {
        FormsAuthentication.RedirectFromLoginPage
           (UserEmail.Text, Persist.Checked);
    }
    else
    {
        Msg.Text = "Invalid credentials. Please try again.";
    }
}

Ответы [ 3 ]

3 голосов
/ 08 мая 2011

Добавьте это в файл web.Config в разделе Configuration. Это позволит анонимному пользователю получить доступ к папке App_Themes.

<location path="App_Themes">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
</location>
2 голосов
/ 08 мая 2011

Я бы попробовал добавить пользовательское местоположение в ваш web.config и разрешить * для этого и посмотреть, будет ли оно подбирать стили.

1 голос
/ 10 мая 2011

Раньше я всегда помню, как давал доступ к файлам моего сайта, щелкая правой кнопкой мыши корневую папку своего сайта и предоставляя доступ к следующему:

сервер (он же местоположение): локальный компьютер IIS_IUSRS<=== это группа IIS APPPOOL [web_site_app_pool_name] </p>

Однако по какой-то причине IUSR не входил в группу IIS_IUSRS.В итоге я просто предоставил этому пользователю IUSR доступ к моему сайту, а не к группе.Я узнал, что на самом деле вы можете поместить пользователя IUSR в группу IIS_IUSRS, выбрав «Компьютер»> «Управление»> «Управление пользователями и группами»> ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...