Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控件未在第_Init()页的Edge/IE中初始化_C#_Asp.net_Devexpress - Fatal编程技术网

C# 控件未在第_Init()页的Edge/IE中初始化

C# 控件未在第_Init()页的Edge/IE中初始化,c#,asp.net,devexpress,C#,Asp.net,Devexpress,根据浏览器品牌,调用控件构造函数的顺序是否不同 在我的项目中有一个DevExpress验证码控件,它在MyForm.aspx页面中呈现。当我在Chrome/Firefox中打开应用程序时,它工作正常,代码属性中有一个随机字符串,但当我在Edge/IE中打开同一页面时,它总是空的(甚至在page_Init中),因此它总是返回false 我想,根据浏览器的不同,调用此控件的构造函数的顺序可能不同,还有什么原因导致此控件在某些浏览器和其他浏览器中未初始化?是的 public partial class

根据浏览器品牌,调用控件构造函数的顺序是否不同

在我的项目中有一个DevExpress验证码控件,它在MyForm.aspx页面中呈现。当我在Chrome/Firefox中打开应用程序时,它工作正常,代码属性中有一个随机字符串,但当我在Edge/IE中打开同一页面时,它总是空的(甚至在page_Init中),因此它总是返回false

我想,根据浏览器的不同,调用此控件的构造函数的顺序可能不同,还有什么原因导致此控件在某些浏览器和其他浏览器中未初始化?是的

public partial class MyForm: System.Web.UI.Page
{
    private string CaptchaCode { get; set; }

    protected void Page_Init(object sender, EventArgs e)
    {
        CaptchaCode = Captcha.Code;
    }

    protected void btnPurchaseCardSecurity_Click(object sender, EventArgs e)
    {
        // line breaks added for readability. [ed]
        Captcha.IsValid = string.Equals(Request.Params["Captcha$TB"]
            .Replace('o', '0').Replace('i', 'l'), CptCode,   
            StringComparison.CurrentCultureIgnoreCase);
    }
下面是aspx中的控件

<dx:ASPxCaptcha ID="Captcha" runat="server">
    <ChallengeImage />
</dx:ASPxCaptcha>

我仍在努力使Edge/IE能够正常工作,但到目前为止,我已经发现了导致问题的原因。如果web.config requiresl设置为true,则当您通过HTTP而不是HTTP协议访问页面时,DevExpress验证码组件可能无法工作。所以现在,一切都是通过HTTP显示的,它只是没有在Edge服务器端传输captcha UI的初始化值,但在Chrome和Firefox中传输

我无法使用HTTPS访问该网站

在web.config中设置RequireSSL时,ASPxCaptcha不能与HTTP一起使用

当web.config中的RequireSSL设置为True时,ASPxCaptcha不能与HTTP一起工作,因为在这种情况下cookie是安全的,并且ASPxCaptcha无法获取存储在其中的会话ID。 因此,在这种情况下有必要使用HTTPS

对于所有有类似问题的人,请查看此链接以了解其他可能的解决方案:


其中一个有用的方法是进入project properties>Web>Servers,并将项目URL的HTTP从项目URL替换为HTTPS。VS要求我安装SSL证书。通过https访问站点,一切正常

如果你有疑问,你可以很容易地测试一下你自己的顺序是什么。不必浪费时间问问题。只需附加调试器并设置断点。或者添加日志记录。除了我提到的东西,我没有发现任何东西,在调试过程中可能会发生一些不明显的事情。如果设置断点,你会发现关于顺序是否随不同浏览器而变化的问题的明确答案。当然,我设置了这些,并且顺序是相同的,但是值不是,浏览器如何影响服务器端的内容?我已经解决了这个问题,答案如下。