2016-07-27 3 views
0

В моем приложении ASPDotNetStorefront, я имитировать «фальшивый» вход - В SkinBase.cs файле, в методе protected override void OnPreInit(EventArgs e) Звоню функцию с кодом:ASPDotNetStorefront не может загрузить файлы ресурсов после входа

public void SetTempUserForNonLoginStore() 
    { 
     if (AppLogic.StoreID() == 2) //store which doesn't need login 
     { 
      string path = HttpContext.Current.Request.Url.AbsolutePath.ToLower(); 
      if (path.Contains("signin.aspx") == false) 
      { 

       m_ThisCustomer = new Customer(TempCustomerID); 
       AppLogic.ExecuteSigninLogic(0, m_ThisCustomer.CustomerID); 
       string cookieUserName = m_ThisCustomer.CustomerGUID.ToString(); 

       FormsAuthentication.SetAuthCookie(cookieUserName, true); 
       m_ThisCustomer.ThisCustomerSession.UpdateCustomerSession(null, null); 
       HttpCookie authCookie = Response.Cookies[FormsAuthentication.FormsCookieName]; 
       if (authCookie != null && !AppLogic.AppConfigBool("GoNonSecureAgain")) 
       { 
        authCookie.Secure = AppLogic.UseSSL() && AppLogic.OnLiveServer(); 
       } 
      } 
     } 
    } 

И этот код работает , Но когда сессия заканчивается и «Session Expire» - появляется всплывающее окно, и пользователь нажимает «OK», ASPDNSF перенаправляется на страницу Signin.aspx. В Signin.aspx странице, я спрятался Вход-форма и добавил «Назад» - кнопка со следующим кодом:

protected void btn_GoBack_Click(object sender, EventArgs e) 
    { 
     string returnURLParam = HttpContext.Current.Request["ReturnUrl"]; 
     if (string.IsNullOrWhiteSpace(returnURLParam)) 
     { 
      returnURLParam = "~/"; 
     } 
     Response.Redirect(returnURLParam); 
    } 

Чтобы перенаправить меня на предыдущую страницу. Но когда перенаправляет меня на эту страницу, файлы .css и .js не загружаются. В инструментах Dev браузера, запросы к этим ресурсам относятся: {{DOMAIN}}/SignIn.aspx?ReturnUrl={{Resource path}}, , например: {{DOMAIN}}/SignIn.aspx?ReturnUrl=%2FApp_Themes%2FSkin_1%2Fmystyles.css {{DOMAIN}}/SignIn.aspx?ReturnUrl=%2Fjscripts%2Fjquery.min.js

Похоже, что эти ресурсы требуют авторизованных пользователей. Но в моем файле web.config у меня есть

<location path="jscripts"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 

<location path="App_Themes"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

Так, Логин не должен быть необходим для этих ресурсов.

Спасибо!

ответ

0

Для лучшей производительности и для обеспечения статических файлов, требующих входа в систему, отключите статические файлы от обработки через конвейер asp.net. Изменив runAllManagedModulesForAllRequests на false в вашем web.config в вашей корневой папке.

 Смежные вопросы

  • Нет связанных вопросов^_^