我们目前使用带有 DNN 7.1 站点的 AWS Cloudfront,但在使用需要 __doPostBack 的控件的模块时遇到问题。
通常我们的主站点不使用这样的控件,但我们正在进行改造并希望添加一些确实需要它的新功能。但是,通过 CloudFront 访问时,__doPostBack 永远不会呈现。我们现在所做的是在我们的一个子域上创建一个页面,该页面不在 CloudFront 上,并设置一个 IFrame 来显示它,它可以工作但由于各种原因不太理想。
经过检查,这似乎是由于 Cloudfront 剥离了用户代理并将其替换为“Amazon CloudFront”。
我尝试创建一个似乎可以识别的自定义 .browser 文件,但 Request.Browser 调用仍然显示“未知”。谁能指出我对这个 .browser 文件做错了什么?我知道它仍然需要添加的功能,但“浏览器”设置应该足以至少调用 Request.Browser 显示提供的“Amazon CloudFront”名称而不是“未知”,不是吗?
<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: 我还尝试将以下内容添加到 web.config 中的 system.web 部分,然后使 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>