加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET中的基页

发布时间:2020-12-15 20:41:14 所属栏目:asp.Net 来源:网络整理
导读:您是否建议在Visual Studio中创建的每个网站,您应该创建一个作为父类的基本页面? 什么是确切的好处/缺点? 解决方法 如果要覆盖ASP.NET中的某些工作方式,将其构建到基类中而不是将代码包含在每个页面中更为有效.我这样做的两个具体实例是: 的IsPostBack 鲜
您是否建议在Visual Studio中创建的每个网站,您应该创建一个作为父类的基本页面?

什么是确切的好处/缺点?

解决方法

如果要覆盖ASP.NET中的某些工作方式,将其构建到基类中而不是将代码包含在每个页面中更为有效.我这样做的两个具体实例是:

的IsPostBack
鲜为人知的事实:提出一个请求,ASP.NET看起来像一个回发,但是提交了GET请求是非常可行的.谁做这个黑客,那是谁.在这种情况下,IsPostback的调用将返回true,但是它真的返回false.要做到这一点,构建一个覆盖IsPostBack的基类:

Public Class MyBase
    Inherits System.Web.UI.Page
    <DebuggerStepThrough()> _
    Public Shadows Function IsPostback() As Boolean

        'Check the built-in IsPostback and make sure this is a HTTP POST
        Return (Page.IsPostBack AndAlso Request.HttpMethod.ToUpper = "POST")

    End Function

End Class

错误处理
在Beginning ASP.NET Security,Blowdart中讨论了如果您使用ASP.NET的错误处理将客户端重定向到自定义错误页面,则黑客(再次)可以检测重定向并将其标记为可能被利用的错误.更安全的模式是处理页面的错误事件并执行Server.Transfer(不向客户端发送任何内容).再次,在基类中这样做意味着你只需编写代码一次:

public partial MyBase : System.Web.UI.Page
{
    protected void Page_Error (object sender,EventArgs e)
    {
        Exception ex = Server.GetLastError();

        // Do something with the exception e.g. log it
        ...

        Server.Transfer("~/mycustomerrorpage.aspx");
     }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读