国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ASP.NET System.Web.HttpContext類Current屬性 的運用
就能看得出來.
而Default.ASPx文件,雖然沒有闡明用的哪個類,但是,實際上已經(jīng)繼承自_Default類.
<%@ Page language="c#" Codebehind="Default.ASPx.cs" AutoEventWireup="false" Inherits="MyTest._Default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>Default</title>
        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        
<meta name="CODE_LANGUAGE" Content="C#">
        
<meta name="vs_defaultClientScript" content="JavaScript">
        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<FONT face="宋體"></FONT>
        
</form>
    
</body>
</HTML>
以上代碼第一句話最后Inherits="MyTest._Default"就表明了這點.這個文件我是以VS2003建立的,也就是 .Net1.1,MyTest是我用的命名空間。

3、類的運行機制
說了這么多,實際上我們還是沒有說到System.Web.HttpContext類。但是我們現(xiàn)在說的東西對于System.Web.HttpContext類運用很有幫助。

我們訪問了Default.ASPx,那么是只訪問Default.aspx文件,或者該類么?答案當(dāng)然不是。.Net中當(dāng)子類被請求時,會先實例化父類。先建立父類的字段,然后是構(gòu)造函數(shù)。

    public class _Default : System.Web.UI.Page
    
{
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此處放置用戶代碼以初始化頁面
        }


        
Web 窗體設(shè)計器生成的代碼
    }
從上面的類中可以看出,該類沒有字段,也沒有構(gòu)造函數(shù)。實例化它又得先實例化System.Web.UI.Page類。System.Web.UI.Page類不是本文要討論的。在實例化_Default類的時候首先執(zhí)行的是OnInit方法。它重寫了System.Web.UI.Page.OnInit。然后調(diào)用InitializeComponent方法,而InitializeComponent方法又調(diào)用了Load事件,執(zhí)行了Page_Load方法。

在Page_Load方法被執(zhí)行之前,System.Web.UI.Page類的很多對象是不能使用的,比如:Application,Session等。

4、System.Web.HttpContext類Current屬性 的運用
終于說到本文的重點了,可能這部分也不會說很多,但是上面說的確實是為這里服務(wù)的。

也不多說了,太長的文章一般沒人看,何況我寫的比較膚淺,并且不夠精彩。在這里就舉兩個例子。一個是身份驗證問題(Session),還有個是全局會話(Application)。

1)、Session
用戶登陸后一般要通過Cookice或者Session來控制權(quán)限等。但是通過使用一個控件(比如ascx)又覺得不夠好。那么,這個時候System.Web.HttpContext.Current就能發(fā)揮作用了。

比如,你可以讓所有的需要身份驗證的頁面都繼承自MPage類。如下:
using System;
using System.Web;

namespace MyTest
{
    
/// <summary>
    
/// MyTest 的摘要說明。
    
/// </summary>

    public class MPage : System.Web.UI.Page
    
{
        
public MPage()
        
{
            
//
            
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
            
//
            if(HttpContext.Current.Session["MySession"]==null || HttpContext.Current.Session["MySession"]==String.Empty)
                HttpContext.Current.Response.Redirect(
"login.ASPx",true);    //如果Session驗證不通過,那么跳轉(zhuǎn)到登陸頁.

        }

    }

}

然后在Default.ASPx.cs文件中_Default類繼承該類
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HTMLControls;

namespace MyTest
{
    
/// <summary>
    
/// _Default 的摘要說明。
    
/// </summary>

    public class _Default : MPage
    
{
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此處放置用戶代碼以初始化頁面
        }


        
Web 窗體設(shè)計器生成的代碼
    }

}

這樣在訪問Default.ASPx文件的時候就需要身份驗證了。如果已經(jīng)通過身份驗證,而web.config或者dll文件被改動,那么Session會被取消(調(diào)試的時候要注意)。

2、Application
快吃飯了,晚上還有點事情,這里就不詳細(xì)介紹了。如果需要用的朋友可以給我留言,我會解答的。

Application可以這樣使用:
using System;
using System.Web;

namespace MyTest
{
    
/// <summary>
    
/// MyTest 的摘要說明。
    
/// </summary>

    public class MPage : System.Web.UI.Page
    
{
        
public MPage()
        
{
            
//
            
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
            
//
            try
            
{
                
if(HttpContext.Current.Application.Count<1)
                    HttpContext.Current.Application.Add(
"Title","我的網(wǎng)站");    //在Application沒有被創(chuàng)建的時候執(zhí)行
            }

            
catch
            
{
                HttpContext.Current.Response.Redirect(
"Err.Htm",true);    //出現(xiàn)錯誤,跳轉(zhuǎn)到錯誤頁面
            }

        }


        
public string My_Title
        
{
            
get
            
{
                
return Application["Title"].ToString();
            }

        }

    }

}

Default.ASPx.cs繼承
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HTMLControls;

namespace MyTest
{
    
/// <summary>
    
/// _Default 的摘要說明。
    
/// </summary>

    public class _Default : MPage
    
{
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此處放置用戶代碼以初始化頁面
        }


        
Web 窗體設(shè)計器生成的代碼
    }

}

Default.ASPx 文件使用
<%@ Page language="c#" Codebehind="Default.ASPx.cs" AutoEventWireup="false" Inherits="MyTest._Default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title><% = My_Title %></title>
        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        
<meta name="CODE_LANGUAGE" Content="C#">
        
<meta name="vs_defaultClientScript" content="JavaScript">
        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<FONT face="宋體"></FONT>
        
</form>
    
</body>
</HTML>

全文完。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在 Asp.Net Web 應(yīng)用程序中長時間裝載頁面時顯示進(jìn)度條
Could not load file or assembly ‘App_Web_xxxx’ or one of its dependencies. 系統(tǒng)找不到指定文件.
aspx與aspx.cs的關(guān)系(1)
asp.net 支持多語言站點的實現(xiàn)方法
ASP.NET13個入門問題解答 - Asp.net源碼交流論壇 |-bbs.51aspx...
利用asp.net 2.0構(gòu)建企業(yè)級門戶平臺(2、實現(xiàn)頁面請求的調(diào)度)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服