ASP.NET筆記

來源:互聯網
上載者:User

標籤:資源   json   首次載入   索引值   api   ip地址   包含   main   mod   

動態網頁和B/S技術

可以與使用者進行互動 根據不同的時間 不同的人 有不同的實現

CJI ASP PHP ASPX ASP.NET(MVC)

C/S(部署在區域網路或者單機上 用戶端伺服器端都要安裝應用程式 每個端點都要升級) B/S(只需要有瀏覽器 部署在Web伺服器上 升級只需要升級伺服器)

B/S結構中瀏覽器端與伺服器端採用請求/響應模式進行互動(用戶端發送的叫做請求)

伺服器端給用戶端相應的響應

http協議

請求/響應的處理模式

http通訊協議特徵

短串連,通訊後網路立即斷開;

無狀態,對於伺服器來說,每一個請求都是全新的;

可以運載多種資料內容,如網頁、映像、音頻、視頻等;

是一種明文資料轉送協議,不安全。

(伺服器端角度看)

沒有用戶端發請求伺服器端絕不可能主動發出響應

伺服器和用戶端通訊完成以後隨即中斷連線,下次通訊時無法區分是哪一個用戶端

伺服器端基本是只有一個 用戶端可以有無限多個,屬於一種一對多的關係

(用戶端角度看)

要接收伺服器端的資料 的話 必須用戶端先主動發起請求

要讓伺服器端能夠分辨也自己 必須主動告訴伺服器端

Hhtp通訊協議細節

URL統一資源描述符(統一資源定位器)

host(主機)網路上主機的名稱(可以用IP地址替換)[:port](連接埠號碼)[path](路徑)

get (要求方法)(明文傳輸(有個數限制)) / post 資料打包傳輸 沒有大小個數限制

http狀態代碼

響應狀態代碼(200 成功)

3開頭代表重新導向

4開頭代表請求錯誤

404 沒找到

5、6開頭 伺服器錯誤

505 協議版本不支援

MIME類型

每個MIME類型由兩部分組成,前面是資料的大類別,後面定義具體的種類

伺服器端給用戶端改善的資料類型是通過mime類型控制的

ASP.NET 是一種建立動態網站的技術

ASP.NET 是一個事件驅動的、基於控制項的體繫結構

ASP.NET經過兩次編譯

IIS

ASP.NET引擎 (環境)

第一次有產生頁面類的過程 第二次則沒有 直接執行個體化頁面類

System.Web.UI.Page 類 (頁面類)

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”頁面名.aspx.cs” Inherits=”類名” %> (Page指令)

Init(初始化頁面時)

Load(載入頁面時)(Page.IsPostback(判斷是不是首次載入))

PreRender(頁面顯示前)

Unload(頁面卸載時)

ASP.NET中的常見內建對象

Page對象 指向頁面自身的方式,範圍為頁面執行期

Request對象 讀取客商在Web請求期間發送的值

Response對象 封裝了頁面執行期返回到http用戶端的輸出

Application對象 代表當前應用程式 作用於整個程式運行期的狀態物件

Session對象 會話對象 會話期狀態保持對象,用於跟蹤單一使用者的會話(儲存在伺服器端)

Cookie對象 用戶端保持會話資訊的一種方式(儲存在瀏覽器上的(會話Cookie))

Server對象 提供對伺服器上的方法和屬性的訪問

Request.QueryString 可以擷取通過URL路徑傳來的資料

Request.From 擷取通過表彰提交傳輸的資料

Request.Params 以上方式傳輸的內容都可以使用該屬性擷取

網頁傳的值預設是string類型的

Response.Redirect(重新導向到另外一個頁面)(兩次請求)

頁面生命週期(設定階段 事件處理階段 顯示階段 清除階段)

Server 對象是HttpServerUtility類的補鈣,包含處理web請求的方法

Execute方法和Transfer方法均會停止當前頁面的執行,並轉去執行使用者在方法內指定的URL,同時使用者的工作階段狀態和任何當前的交易處理狀態都將傳送給新頁面

區別:

Server.Execute(當前頁面中可以嵌入其它頁面的內容)(控制權的相對轉移,控制權會再次回到本頁面,執行後續的事件處理)

Server.Transfer(URL參數指定的頁面處理完後,控制權不會返回給調用此方法的頁面,並且在新頁面完成執行時結束,URL地址不變)(是伺服器內部的跳轉,是控制權的絕對轉移,在轉移期間可以傳遞資料,URL地址不變)(是伺服器內部 控制權的絕對轉移,對外面來說是透明的,感覺不到的,是一次請求,URL地址不變)

Response.Redirect(是客戶gfir重新導向,是丟棄了原有的請求資料,重新開啟新的請求,URL地址會變化)

Html表單預設傳輸方式 GET 伺服器控制項預設傳輸方式 POST

Server.HtmlEncode(會自動轉碼為Html)

Server.HtmlDecode(自動解碼)

Server.UrlEncode(包含特殊字元 可以用.進行轉碼)

Server.UrlDecode()

protected 的類可以在前台編碼中使用

<%=  %>(表達示 輸出背景值)

Server.MapPath

~/代表網點的虛擬根目錄

狀態管理

狀態是任何類型的資料能夠在一段時間內保持活躍的資訊

這段時期可以是整個應用程式生命週期,也可以是使用者使用這個應用程式的時間,或者使用者瀏覽另外一個頁面之前這個頁面的生命週期

狀態管理是您對同一頁或不同頁的多個請求維護狀態的頁資訊的過程

http(hypertext transfer protocol):超文字傳輸通訊協定 (HTTP)(應用程式層協議)(不記錄使用者的資訊)

POST GET HEAD OPTIONS DELETE TRACE PUT (請求方式)都是幹嘛的

瀏覽器預設都是GET表單最好是POST

GET 的資料容量不能超過1K    POST資料量不受限制

按照儲存狀態的位置,ASP.NET中狀態保持分類如下

伺服器端;Application(所有使用者都能訪問)、 Session(會話期狀態保持對象:關掉瀏覽器會話結束(最大非活動時間長度 預設:分鐘))

窗戶端:Cookie()、 ViewState、 查詢字串、 隱藏的表單欄位(隱藏欄位)

Session

Sessoin.Clear();清空Session

Session.Abandon();終止會話

Cookie

最大為4KB 儲存在用戶端瀏覽器或用戶端硬碟

在用戶端系統中保留用戶端的個人資訊

會話Cookie(暫時的 關閉瀏覽器後,任何會話Cookie都會丟失)

持久性Cookie(儲存在用戶端硬碟,需要設定Cookie的到期時間)

Cookie缺點:不提供任何安全保障,由用戶端系統控制;容量有限;瀏覽器最多隻可以容納20個

eg:

HttpCookie cookie = new HttpCookie(“Cookie名稱”, “值”);

Cookie.Expires(到期時間(設定此屬性後就是持久性Cookie)) = DataTime.Now.AddMonths(1);

Response.Cookies.Add(cookie);

讀取:Requset.Cookies[“cookie(名稱)”].value;(失效得到的值為null)

App_Code(建立的類、介面要放在這個檔案夾下)

ViewState(檢視狀態)(當前頁面內有效)(使用方式和Session一樣 範圍為當前頁面)(<% @Page ViewStateEncryptionMode=”Always”%>)

Application表示ASP.NET應用程式的執行個體

狀態由HttpApplicationState類包括所有及各種關的方法和集合

當第一個使用者請求一個ASP.NET檔案時,會應用程式並建立一個Application對象

可以在整個應用程式中使用,建立的對象將持續到應用程式關閉。它是應用程式級變數,所有頁面都可以使用該對象

Application對象以鍵/值對儲存資料

Global.asax(全域應用程式類)

Application_Start(應用程式啟動) Application_End(應用程式關閉) Application_Error(未處理錯誤) Session_Start(會話開始) Session_End(會話結束)

ASP.NET控制項(HTML控制項、 Web伺服器控制項)

Web伺服器控制項位於System.Web.UI.Webcontrols命名空間下

Literal控制項 Repeater

TextBox控制項的AutoPostBack屬性 是否自動回傳到伺服器 (TextMode)

RequireFieldValidator控制項 ControlToValidate屬性(要驗證的控制項的ID)(add key=”ValidationSettings:UnobtrusiveValidationMode” value = “None” />)

正則:”+”表示至少出現1次 (表示組) [可以出現其中的任意一個字元(任選其中一個 )] ?是0到1次 *是0到n次

主版頁面:統一風格的作用(不能使用輸出緩衝)

緩衝:是一項在計算中廣泛用來提高效能的技術,它將訪問頻率高或構造成本高的資料保留在記憶體中、 無需重新建立的情況下多次使用

ASP.NET支援兩種緩衝:輸出緩衝 資料緩衝

<%@OutputCache Duration(緩衝時間 單位是秒) VaryByParam=”none”(不根據參數緩衝) VaryByControl=”控制項名”(根據控制項名緩衝) %>

資料緩衝:Cache(緩衝類) (存的也是索引值對)

Shared=”true”

使用者控制項(.ascx)(可以使用輸出緩衝)(<%@Control %>)(定義後台代碼的關聯)(<%@ Register %>)(註冊使用者控制項)

DataBind()實現資料繫結必須的代碼

Ajax Asynchronous JavaScript and XML

$.ajax({

type: “POST”,

contentType: “application/json; charset=UTF-8”

});

HttpContext(代表當前請求的一個上下文環境)

IIS處理根據檔案的尾碼名

ISAPI應用程式(實際上只是一個介面,起到一個代理的作用,主要工作是映射所請求的頁面(檔案) 和與此尾碼名相應的實際的處理常式)

處理常式映射

HttpRuntime類是asp.net的一個主要入口 ProcessRequest處理請求

應用程式定義域 AppDomain

HTTP.sys的內建驅動程式來監聽來自外部的HTTP請求

在5.0中 所有應用程式都在進程Aspnet_wp.exe下 死一個都死

iis6 w3wp.exe

HttpModule可以做一些執行某個實際工作前的事情

HttpHandler也是http請求處理的最底層

HttpModule 實現了System.Web.IhttpModule介面的類(本質上就是過濾器(過濾請求和響應))(有訪問HttpContext對象的許可權,可以修改請求,輸出響應的內容以及提供自訂的身分識別驗證)(針對每一個請求提供響應前處理和響應後處理)(多個HttpModule可以鉤住相同的事件 事件被處理的順序是它們在web.config裡配置的順序)

 

 

使用HttpModule實現許可權管理的步驟:

1 定義一個類Qx, 實現System.Web.IhttpModule介面

2 實現介面中的Init方法,對context.AcquireRequestState事件進行處理,截獲使用者的請求,判斷使用者有沒有訪問特定資源的許可權

3 在web.config中添加該HttpModule的配置

Application.CompleteRequest(終止當前請求);

浮水印

 

全域Handler

 

mechine.config:提供整個機器的預設配置,對該檔案的個性將影響所有原生網站

web.config:一般用於應用程式層級的設定檔,對其修改不影響其他網站,也可以用於網站下的子目錄

基於XML區分大小寫

可讀可寫

修改配置 不用重啟伺服器

應用配置應用最近的原則

安全控制:身分識別驗證(登入頁面)(是否擁有相應的身份); 許可權控制(控制各種身份的使用者所擁有的許可權)

身分識別驗證方式

Windows身分識別驗證

Passport身分識別驗證

Forms身分識別驗證

<authentication mode=”Forms”><forms name=”” loginUrl=”頁面” timeout=”60” protection=”All”(加密) ></forms></authentication>

授權:allow(允許) deny(拒絕) *(所有使用者) ?(匿名使用者)

<authorization><deny users=”?” /><allow roles=”使用者名稱” /><deny users=”*” /></authorization>(系統總是按照從前向後逐條匹配的方式,執行最先的匹配者)

System.Web.Security.FormsAuthentication.RedirectFromLoginPage(使用者名稱, false)(建立驗證票)

Session.Clear();

Session.Abandon();

System.Web.Security.FormsAuthentication.SignOut();

Response.Redirect(退出後的頁面);

 

 

ASP.NET筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.