В настоящее время мы используем AWS Cloudfront с нашим сайтом DNN 7.1, но у нас возникла проблема с модулями, которые используют элементы управления, требующие __doPostBack.
Обычно на нашем основном сайте такие элементы управления не используются, но мы проводим реконструкцию и хотим добавить некоторые новые функции, которые этого требуют. Но __doPostBack никогда не обрабатывается при доступе через CloudFront. На данный момент мы создали страницу в одном из наших поддоменов, которого нет в CloudFront, и настроили IFrame для ее отображения, который работает, но не идеален по разным причинам.
При рассмотрении кажется, что это связано с тем, что Cloudfront удаляет пользовательский агент и заменяет его «Amazon CloudFront».
Я попытался создать собственный файл .browser, который кажется распознанным, но вызов Request.Browser по-прежнему говорит «Неизвестно». Может ли кто-нибудь указать, что я делаю неправильно с этим файлом .browser? Я знаю, что ему все еще нужны добавленные возможности, но настройки «браузер» должно быть достаточно, по крайней мере, для того, чтобы вызов Request.Browser отображал предоставленное имя «Amazon CloudFront» вместо «Unknown», не так ли?
<browsers>
<browser id="AmazonCloudFront" parentID="default">
<identification>
<userAgent match="Amazon CloudFront" />
</identification>
<capture>
</capture>
<capabilities>
<capability name="browser" value="Amazon CloudFront" />
</capabilities>
</browser>
</browsers>
ОБНОВЛЕНИЕ №1: я также попытался добавить следующее в раздел system.web в файле web.config, а затем аннулировал страницы сайта в Cloudfront, но без изменений.
<clientTarget>
<add alias="uplevel" userAgent="Amazon CloudFront" />
<add alias="uplevel" userAgent="amazoncloudfront" />
</clientTarget>
ОБНОВЛЕНИЕ #2: я также попытался добавить следующее в файл Default.aspx, но это также не дало никакого эффекта. И да, для autoeventwireup установлено значение true.
<script runat="server">
protected void Page_PreInit(object sender, EventArgs e)
{
// Set client target to specify browser capabilities equivalent to Internet Explorer 6.0 and higher.
Page.ClientTarget = "uplevel";
}
</script>
ОБНОВЛЕНИЕ №3: я попробовал следующее, но __doPostback все еще не отображается.
<browsers>
<browser refID="Default">
<capabilities><!-- To avoid wrong detections of e.g. IE10 -->
<capability name="cookies" value="true" />
<capability name="ecmascriptversion" value="3.0" />
</capabilities>
</browser>
</browsers>
ОБНОВЛЕНИЕ № 4: я пробую следующий подход в качестве дробовика и добавляю все самые последние уникальные возможности из других файлов браузера. Это также не вызвало никаких изменений.
<browsers>
<browser refID="Default">
<capabilities>
<capability name="cookies" value="true" />
<capability name="w3cdomversion" value="1.0" />
<capability name="javascript" value="true" />
<capability name="ecmascriptversion" value="3.0" />
<capability name="javascriptversion" value="1.8" />
<capability name="layoutEngine" value="Gecko" />
<capability name="supportsAccesskeyAttribute" value="true" />
<capability name="javaapplets" value="true" />
<capability name="supportsDivNoWrap" value="false" />
<capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
<capability name="frames" value="true" />
<capability name="javaapplets" value="true" />
<capability name="supportsCallback" value="true" />
<capability name="supportsFileUpload" value="true" />
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
<capability name="supportsMultilineTextBoxDisplay" value="true" />
<capability name="supportsXmlHttp" value="true" />
<capability name="tables" value="true" />
<capability name="isColor" value="true" />
<capability name="screenBitDepth" value="8" />
<capability name="jscriptversion" value="6.0" />
<capability name="vbscript" value="true" />
<capability name="supportsVCard" value="true" />
<capability name="maximumRenderedPageSize" value="300000" />
<capability name="supportsFontName" value="true" />
<capability name="supportsFontSize" value="true" />
<capability name="supportsImageSubmit" value="true" />
<capability name="supportsItalic" value="true" />
<capability name="supportsBold" value="true" />
<capability name="supportsCss" value="true" />
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
</capabilities>
</browser>
</browsers>