Webresource.axd проблема между обычным и безопасным путями домена

В нашей настройке есть два разных веб-сайта в настройке IIS 7, которые указывают на один и тот же физический путь. Один с привязкой http: // websitename .domain.com / (виртуальный корень ~ - /)

а второй - https://webserver.domain.com/ идентификатор пользователя / websitename (виртуальный корневой каталог ~ / userid / websitename). Мы используем второй для обеспечения безопасности каждого веб-сайта.

Это вызывает проблему с загрузкой файлов Webresources.axd для сгенерированного css и javascript для инструментария AJAX.net.

Есть ли способ изменить путь к этим сгенерированным файлам ресурсов. Или как-то установить виртуальный корневой путь для каждого приложения.


person Steve T    schedule 14.11.2008    source источник


Ответы (1)


Я нашел одно решение, используя метод Render () для замены путей URL-адресов на правильный. В этом форуме есть информация об этом решении. Мне придется изменить его, чтобы проверить Request.Url, чтобы узнать, из какого домена исходит запрос страницы.

protected override void Render(HtmlTextWriter writer)
{
     try
     {                  
          StringBuilder renderedOutput = new StringBuilder();    
          StringWriter strWriter = new StringWriter(renderedOutput);    
          HtmlTextWriter tWriter = new HtmlTextWriter(strWriter);    
          base.Render(tWriter);

          //this string is to be searched for src="/" mce_src="/" and replace it with correct src="./" mce_src="./". 

          string s = renderedOutput.ToString();
          s = Regex.Replace(s, "(?<=<img[^>]*)(src=\\\"/)", "src=\"./", RegexOptions.IgnoreCase);
          s = Regex.Replace(s, "(?<=<script[^>]*)(src=\\\"/)", "src=\"./", RegexOptions.IgnoreCase);
          s = Regex.Replace(s, "(?<=<a[^>]*)(href=\\\"/)", "href=\"./", RegexOptions.IgnoreCase);

          writer.Write(s);
      }
      catch
      {
      }
  }
}
person Steve T    schedule 14.11.2008