小编use*_*954的帖子

default.aspx页面中的事件问题(ASP.net 3.5)

我在使用母版页的asp.net webform时遇到问题.仅当页面名为default.aspx时才会出现此问题.当命名为default.aspx时,如果Page_Load事件中有任何代码,则不会触发其他事件.这还包括我已经测试过的所有代码,我已经测试了OnInit和Button点击事件,这个问题首先表现为按钮点击没有触发.

Default.aspx代码

<%@ Page Title="" Language="C#" MasterPageFile="~/TWS/tws.Master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="SITMComAU.TWS.original" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="bodyPlaceholder" runat="server">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

OnInit Fires: - 通过断点检查

 public partial class original : System.Web.UI.Page
 {
    protected void Page_Load(object sender, EventArgs e)
    {


    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        int a = 1;
        int b = 2;
        int c = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

OnInit不会触发: - 通过断点检查

 public partial class original : System.Web.UI.Page
 {
    protected void Page_Load(object sender, EventArgs e)
    {
       /* …
Run Code Online (Sandbox Code Playgroud)

c# asp.net webforms

7
推荐指数
1
解决办法
1193
查看次数

默认情况下,XML炸弹(实体注入)在.Net 4.0中处理,但不在.Net 3.5中.怎么样?改变了什么?

以下代码

XmlDocument xdoc = new XmlDocument();
            String xml = @"<!DOCTYPE lolz [" +
                    "<!ENTITY lol \"lol\">" +
                    "<!ENTITY lol2 \"&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;\">" +
                    "<!ENTITY lol3 \"&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;\">" +
                    "<!ENTITY lol4 \"&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;\">" +
                    "<!ENTITY lol5 \"&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;\">" +
                    "<!ENTITY lol6 \"&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;\">" +
                    "<!ENTITY lol7 \"&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;\">" +
                    "<!ENTITY lol8 \"&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;\">" +
                    "<!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">" +
                    "]>" +
                    "<lolz>&lol9;</lolz>";
            xdoc.LoadXml(xml);
Run Code Online (Sandbox Code Playgroud)

.Net 4.0 此代码将抛出异常 输入文档已超出MaxCharactersFromEntities设置的限制

.Net 2.0/3.5 此代码不会抛出任何异常,并且会在XML中继续增长,直到达到内存限制

有人可以解释这种差异的原因吗?

到目前为止所做的研究 我反汇编了System.Xml v2.0和v4.0并且只改变了我看到的方法RegisterConsumedCharacters v2.0定义

private void RegisterConsumedCharacters(long characters, bool inEntityReference)
{
    if (this.maxCharactersInDocument …
Run Code Online (Sandbox Code Playgroud)

.net xml security system.xml

6
推荐指数
1
解决办法
1179
查看次数

VB.Net到C#转换'+'运算符

为什么VB.Net会转换此代码

Sub Main()
    Dim str As String = ""
    Dim lNumber As Integer = 0
    str = "String " + lNumber
    Console.WriteLine(str)
End Sub
Run Code Online (Sandbox Code Playgroud)

public static void Main()
{
    int lNumber = 0;
    Console.WriteLine(Conversions.ToString((double) (Conversions.ToDouble("String ") + lNumber)));
}
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

public static void Main()
{
    int lNumber = 0;
    Console.WriteLine("String " + lNumber);
}
Run Code Online (Sandbox Code Playgroud)

我在C#中问这个问题

当一个或两个操作数都是string类型时,+连接操作数的字符串表示

c# vb.net

1
推荐指数
1
解决办法
174
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

security ×1

system.xml ×1

vb.net ×1

webforms ×1

xml ×1