<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    ASP.NET總結(jié)

    ASP.NET總結(jié)

    2009年09月24日

      第一章: 

      1.ASP.NET優(yōu)點: 

      1) 與瀏覽器無關(guān) 2) 方便設(shè)置斷點,易于調(diào)試 3) 編譯后執(zhí)行,運行效率高 4) 豐富的控件庫 5) 代碼后置,邏輯分明 

      Asp.net頁面編譯:asp.net代碼經(jīng)過編譯后生成MSIL(微軟中間語言),然后通過JIT(即時編譯器)進一步編譯成機器語言,其中JIT并非一次完全編譯,而是調(diào)用哪部分代碼就編譯哪部分,編譯好的不需要再編譯。 

      2.IIS:基于Windows系統(tǒng)的Web服務(wù)器的,ASP.NET的發(fā)布是基于IIS服務(wù)器的,類似JSP中使用Tomcat。在VS中,內(nèi)置了輕量級的Web服務(wù)器,為Cassini,無須配置IIS。 

      3.ASP.NET解決方案自動生成文件如下 

      1) App_Data(存放數(shù)據(jù)的文件夾) 2)Web.Config(站點配置文件) 3) Default.aspx(Web窗體) 4) Default.aspx.cs(代碼后置文件) 

      4.ASP.NET兩種編碼方式:代碼內(nèi)嵌(Html代碼和C#代碼交叉使用,只有aspx文件) 代碼后置(Html代碼和C#代碼分開放置,包含aspx文件和aspx.cs文件) 

      第二章: 

      1.Asp.net運行機制:用戶第一次請求頁面時,asp.net引擎會編譯aspx文件和cs文件,合并生成頁面類,請求經(jīng)處理后,返回處理結(jié)果。而第二次請求頁面時,由于頁面類已存在,故直接處理返回。 

      2.Asp.net中常見的系統(tǒng)對象 

      1) Page:指向頁面自身的方式,整個頁面執(zhí)行期內(nèi)可使用該對象。<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”default.aspx.cs” Inherits=“_default”> 注意:AutoEventWireup設(shè)置頁面是否自動調(diào)用網(wǎng)頁事件,如果該屬性設(shè)置為false,則不會觸發(fā)事件(例如Page_Load等等) 

      2) Request:存儲請求信息,常用屬性QueryString可得到URL中 ?后面的參數(shù),F(xiàn)orm表單提交方式時取值,ServerVariable包含服務(wù)器端和客戶端的系統(tǒng)信息,Params以上三種均可取值,因為需要在URL,表單,環(huán)境變量中找尋,故速度慢。舉例 :url為 MyAs.aspx ?id=5,則取值可使用 string num = Request.QueryString[”id”].ToString() ; 

      3) Response:存儲輸出信息,常用屬性Write方法可輸出指定文本內(nèi)容,Redirect方法為頁面重定向操作。 

      4) Session:狀態(tài)保持,存儲于服務(wù)器端,用于存儲會話信息,一般用于當用戶登錄時記錄用戶狀態(tài),當訪問其它頁面時判斷是否存在該Session,如果為null則用戶尚未登錄,則轉(zhuǎn)向登錄頁面即可,不為null時可繼續(xù)處理。 

      使用方式 :Session[”user” ] = ”wkj”; 頁面判斷使用 if(Session[”user”] == null) Response.Redirect(”Login.aspx”) ; else Response.Write(”歡迎” + Session[”user”].ToString()) ; 

      5) Cookie:狀態(tài)保持,存儲于客戶端,用于當用戶第一次登錄時記錄用戶信息,以備下次登錄時不必再重復(fù)輸入一些基本信息,例如登錄郵箱時所輸入的Email地址,登錄成功后,第二次不必再輸入Email地址信息。 

      6) Application:狀態(tài)保持,存儲于服務(wù)器端,為整個應(yīng)用程序級的對象,一般用于統(tǒng)計在線人數(shù)。用戶首次登錄時設(shè)置Application[”num”] = 0,以后每次有一個用戶登錄則設(shè)置Application[”num”]=Convert.ToInt32(Application[”num”].ToString()) + 1 ; 

      7) Server:提供服務(wù)器端的一些屬性和方法,最常用方法MapPath,得到所傳路徑的絕對路徑,一般做文件操作時取絕對路徑使用。 例如:string path = Server.MapPath(”Default.aspx”);可能返回 : D:\wkj\Lesson2Web\Default.aspx 

      3.頁內(nèi)數(shù)據(jù)傳遞:asp.net會發(fā)生頁面回傳,故可使用Page.IsPostBack判斷。一般在Page_Load中做頁面初始化時需要加上,以避免頁面回傳后重新初始化信息而取不到頁面輸入的值。 If( ! Page.IsPostBack) {初始化信息} 

      4.跨頁數(shù)據(jù)傳遞:支持跨頁傳遞需要設(shè)置PostBackUrl屬性到相應(yīng)路徑,支持PostBackUrl的控件只有Button,LinkButton,ImageButton。第二個頁面取值 if(Page.PreviousPage != null) { if(PreviousPage.IsCrossPagePostBack) { Response.Write( ((TextBox)this.PreviousPage.FindControl(”txtName”)).Text ) } } 

      第三章: 

      1.Asp.net控件 

      1) html控件,后臺取不到值,可轉(zhuǎn)換民服務(wù)器端控件加runat=”server”。 

      2) Web控件,可執(zhí)行復(fù)雜請求,優(yōu)點:跨瀏覽器兼容性(程序員不用考慮瀏覽器版本),事件驅(qū)動模型(像WinForms編程一樣)。 

      2.TextBox控件 AutoPostBack(是否自動提交),例如:設(shè)置TextChange事件,AutoPostBack設(shè)置為true則自動觸發(fā)事件,設(shè)置為false則不觸發(fā) 

      TextMode(文本樣式) SingleLine為單行輸入,默認值。 MultiLine為多行輸入。Password為密碼輸入方式。 

      3.站點地圖,網(wǎng)站右鍵添加新項,選擇站點地圖,默認名為Web.sitemap。站點地圖是對站點結(jié)構(gòu)的XML描述。注意事項:站點地圖根節(jié)點為<siteMap>元素,并且每個文件有且僅有一個根節(jié)點。<siteMap>下一級有且僅有一個<siteMapNode>節(jié)點。<siteMapNode>下面可以有多個<siteMapNode>節(jié)點。站點地圖中,同一個URL僅能出現(xiàn)一次。 

      4.導(dǎo)航控件 

      SiteMapPath控件: 面包屑導(dǎo)航,自動調(diào)用站點地圖,在站點地圖節(jié)點中url指示的頁面中托入SiteMapPath控件即可。如果站點地圖中不包含當前頁面則SiteMapPath控件不顯示也不報錯。改變分隔符使用PathSeparator屬性。 

      TreeView控件:配置的數(shù)據(jù)源可為站點地圖或者是XML文件,設(shè)置為站點地圖時可直接顯示,設(shè)置為XML文件時還需要設(shè)置 ”編輯TreeNode數(shù)據(jù)綁定”,添加節(jié)點設(shè)置TextField屬性為顯示,NavigateUrlField屬性為鏈接. 

      Menu控件:使用方式與TreeView控件一致,只是Menu控件可顯示靜態(tài)或動態(tài)的,使用StaticDisplayLevels屬性設(shè)置靜態(tài)或動態(tài),默認為1即動態(tài),可設(shè)置相應(yīng)級別數(shù)設(shè)置為靜態(tài)。 

      5.母版頁:應(yīng)用于統(tǒng)一的布局。網(wǎng)站右鍵添加新項選擇母版頁,默認命名為MasterPage.master,可改名。設(shè)置母版頁樣式,可添加內(nèi)容頁。 

      特點:有利于站點修改和維護,在母版頁中添加事件,則每一個頁面都可使用。 

      第五章: 

      1.數(shù)據(jù)展示兩種實現(xiàn)方式:一種是使用ado.net 手寫代碼實現(xiàn),另一種是使用數(shù)據(jù)源控件實現(xiàn)(簡單方便) 

      2.數(shù)據(jù)源控件:快速實現(xiàn)多種常用的數(shù)據(jù)源進行展示,快速完成表增刪改查操作。數(shù)據(jù)源控件不提供展示,而是數(shù)據(jù)綁定控件提供展示(GridView,DetailsView,DropDownList,DataList,Repeat er)。 

      常用五種數(shù)據(jù)源控件 :SqlDataSource(sqlserver數(shù)據(jù)庫),AccessDataSource(access數(shù)據(jù)庫),SiteMapDataSource(SiteMapPath),XmlDataSource(TreeView,Menu),ObjectDataSource(對象型,分層結(jié)構(gòu)使用) 

      3.ObjectDataSource重要屬性 

      TypeName獲取設(shè)置ObjectDataSource對象表示類的名稱,即業(yè)務(wù)對象的類名, SelectMethod檢索數(shù)據(jù)方法名,InsertMethod插入數(shù)據(jù)方法名,UpdateMethod 更新數(shù)據(jù)方法名,DeleteMethod 刪除數(shù)據(jù)方法名 

      4.手寫代碼方式綁定GridView:this.gvMain.DataSource = UserManager.GetAllUsers() ; this.gvMain.DataBind() ; 

      設(shè)置數(shù)據(jù)源方式綁定GridView:this.gvMain.DataSourceId=數(shù)據(jù)源id; 

      5.GridView綁定信息:點右小鍵頭選擇新建數(shù)據(jù)源,選ObjectDataSource,選業(yè)務(wù)邏輯對象,選擇相應(yīng)方法,完成。設(shè)置分頁只要設(shè)置AllowPaging為true即可。 綁定字段設(shè)置7種 : 

      1) BoundField顯示普通文本,默認方式,可通過DataFormatString屬性設(shè)置顯示格式,{0 : C}貨幣 {0 :D}數(shù)字 {0 :yy-mm-dd}日期格式,注意設(shè)置HtmlCode屬性為false時DataFormatString屬性才生效 

      2) TemplateField 模板列,最常用方式,可自己編寫HTML代碼進行設(shè)置 

      3) ButtonField 按鈕列,可通過CommadName設(shè)置按鈕命令,自定義代碼實現(xiàn)按鈕觸發(fā)后操作。 

      4) CommandField 類似于按鈕列,只不過其提供了選擇,編輯,插入或刪隊操作的命令按鈕,自動生成命令,無須手寫代碼。 

      5) HyperLinkField 將所綁定數(shù)據(jù)以超鏈接形式顯示。 

      6) ImageField 在GridView中顯示圖片列,DataImageUrlFields設(shè)置綁定列,DataImageUrlFormatString設(shè)置圖片路徑。 

      7) CheckBoxField 使用復(fù)選框形式顯示布爾類型數(shù)據(jù)。只有當該控件中有布爾型數(shù)據(jù)時才可使用CheckBoxField。 

      6.Bind方法與Eval方法的區(qū)別: 

      Eval是只讀的單向數(shù)據(jù)綁定,所綁定的內(nèi)容不會提交回服務(wù)器,使用方式<%# Eval(”user”).ToString() %>,可實現(xiàn)格式化<%# Eval(”PublishDate”, ”{0 :dd/MM/yyyy}”) %>顯示格式可能為 ”17/08/2008”。 

      Bind支持讀寫功能,為雙向數(shù)據(jù)綁定,所綁定內(nèi)容自動提交回服務(wù)器,常與輸入控件一起使用。 <%#Bind(”Title”) %> 

      7.光棒效果: protected void gvDemo_RowDataBound(object sender, GridViewRowEventArgs e) 

      { 

      if (e.Row.RowType == DataControlRowType.DataRow) 

      { 

      e.Row.Attributes.Add("onmouseover","currentcolor=t his.style.backgroundColor;this.style.backgroundColo r='#6699ff'"); e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor"); } } 8.多選效果: function GetAllCheckBox(CheckAll) 

      { 

      var items = document.getElementsByTagName("input"); 

      for(i=0; i<items.length;i++) 

      { 

      if(items[i].type=="checkbox") 

      { 

      items[i].checked = CheckAll.checked; 

      } 

      } 

      } 

      9.后臺取頁面值。 for (int i = 0; i < this.gvBooks.Rows.Count; i++) 

      { 

      CheckBox cb = (gvBooks.Rows[i].FindControl("chbSelect")) as CheckBox; 

      if (cb.Checked == true) 

      { 

      sb += (gvBooks.Rows[i].FindControl("lblId") as Label).Text+","; 

      } 

      } 

      10.DropDownList控件:DataTextField屬性為顯示字段,DataValueField屬性為真正顯示的值,SelectedIndexChange事件更改選定項內(nèi)容時觸發(fā),僅當AutoPostBack屬性設(shè)置為true時有效。 

      得到下拉框顯示的信息,ddlPublisher.SelectedItem.Text或者ddlPublisher.Text。得到下拉框的值:ddlPublisher.SelectedItem.Value或者ddlPublisher.SelectedValue; 

      11.DetailsView控件可顯示數(shù)據(jù)庫中的單條記錄詳細信息,使用方式與GridView類似。只是需要設(shè)置傳遞參數(shù)。 

      12.使用控件顯示時,如果內(nèi)容中有HTML標簽,比如”<br>”,也會顯示出來,想讓它顯示成換行,將該字段的HtmlEncode屬性設(shè)置為false即可。 

      第六章: 

      1.驗證控件,可以輕松實現(xiàn)用戶輸入的驗證,且與用戶瀏覽器無關(guān)。由在客戶端或服務(wù)器中運行的驗證代碼執(zhí)行,主要為客戶端。 

      驗證控件特點:以調(diào)試模式運行,如果驗證控件驗證出問題,則頁面不會提交到服務(wù)器執(zhí)行,說明驗證是在客戶端進行的。 

      如果將IE設(shè)置為禁用腳本,而頁面發(fā)生回傳,驗證沒有發(fā)生,正常情況下不希望沒有經(jīng)過驗證就進入后臺操作,可使用if(Page.IsValid) { } 

      驗證控件常用屬性 :(如下ControlToValidate為所有驗證控件的必須屬性): 

      ControlToValidate為所要驗證的控件的ID 

      Text為出錯時的提示,一般寫為*號 

      ErrorMessage為提交給ValidationSummary的錯誤提示,當Text為空時,會顯示該錯誤信息。 

      1) RequiredFieldValidator 非空驗證 

      2) CompareValidator 比較控件 用于驗證用戶輸入的內(nèi)容是否符合要求,一般用于兩次密碼的比較或者輸入的值與某個固定值的對比 

      常用屬性:ControlToCompare即要進行對比的控件,Type為比較類型,不同類型比較會出錯,Operator為比較運算符,默認為等于 

      3) RangeValidator 用于檢查范圍 

      常用屬性:MaximumValue為最大值,MinimumValue為最小值,Type為驗證類型(字符串,整型,雙精度,日期,貨幣五種) 

      4) RegularExpressionValidator 正則表達式驗證控件,正則表達式就是用某種模式去匹配一類字符串的一個特殊公式。 

      常用屬性:ValidationExpression用于確定有效性的正則表達式,MS提供了一些,一些常見的可見書上145頁。也可到網(wǎng)上去搜索。 

      5) CustomValidator 自定義驗證控件,支持客戶端驗和服務(wù)器端驗兩種方式。 

      常用屬性:ClientValidationFunction用于設(shè)置客戶端驗證的腳本函數(shù) OnServerValidate為服務(wù)器端驗證的事件方法。 

      例如驗?zāi)硞€文本框值的長度,要求必須大于6位 

      Function CheckLength(source,args) 

      { 

      If(args.value.length<6) args.IsValid=false ; 

      Else args.IsValid=true ; 

      } 

      6) ValidationSummary 驗證報告控件,該控件不對窗體輸入進行驗證,只是將驗證的錯誤匯總在一處統(tǒng)一顯示,顯示的為ErrorMessage 

      常用屬性:ShowMessageBox是否顯示彈出提示信息,ShowSummary指示是否顯示報告內(nèi)容,想設(shè)置為彈出框顯示將前者設(shè)為true,后者設(shè)置為false 

      2.JS版日歷控件 可實現(xiàn)在用戶選擇日期時,不刷新頁面 

      使用方法 :1. 將My97DatePicker放入站點中的一個目錄,假設(shè)放于網(wǎng)站的根目錄。 

      2. 在頁面添加如下語句 : <script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script> 

      3. 在設(shè)置日期的控件上添加如下樣式和事件,例如 

      class="Wdate" onFocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'default')" 

      3.文件上傳控件 可將圖片等文件上傳到服務(wù)器 

      使用方法: 1. 托入FileUpload <asp:FileUpload onchange=”CheckImg(this)” ID=”fulFile” runat=”server”> 

      2. 控制上傳的文件格式(JS腳本): 

      function CheckImg(this) 

      { 

      var mime=FileUpload.value; 

      mime=mime.toLowerCase( ).substr(mime.lastIndexOf(".")); if(mime!=“.jpg") { FileUpload.value=""; alert("僅支持JPG格式"); 

      } 

      } 

      3.點擊更新時,將圖片上傳到服務(wù)器,在ItemUpdated事件中編碼 

      protected void dvBookList_ItemUpdated(... ...) 

      { 

      FileUpload fulBook = this.dvBookList.FindControl("fulBook") as FileUpload; 

      Image imgBook = this.dvBookList.FindControl("imgBook") as Image; 

      string FileName = fulBook.FileName; 

      if (FileName.Trim().Length != 0) 

      { 

      string strpath =Server.MapPath(imgBook.ImageUrl); 

      fulBook.PostedFile.SaveAs(strpath); //將圖片保存在此路徑中 

      } 

      } 

      4.MultiView為多視圖的意思,一般和View控件一起使用,View可表現(xiàn)為一個窗口,而MultiView為View控件提供容器。一個MultiView可有多個View 

      ActiveViewIndex用于設(shè)置或獲取當前被激活顯示的View索引值 。MultiView控件名.ActiveViewIndex=0,則設(shè)置顯示第一個視圖。 

      5.ImageMap可以將圖片轉(zhuǎn)變?yōu)閷?dǎo)航菜單,可對圖片區(qū)域進行劃分,為區(qū)域賦予特定屬性,類似于HTML中的熱點(map標簽) 

      為了解內(nèi)容,詳細見書160頁 

      6.HyperLink 超鏈接控件 常用屬性 Text為鏈接顯示文本,NavigateUrl為鏈接所指向的URL地址,ImageUrl設(shè)置為圖片形式的鏈接。 

      第七章: 

      1.DataList 以某種格式顯示數(shù)據(jù),格式可使用模板和樣式定義,可用于任何重復(fù)結(jié)構(gòu)中的數(shù)據(jù),比如說表,使用<Table>等相關(guān)元素在列表中呈現(xiàn)項。 

      托入頁面后需要編輯模板列,常用模板兩個,一是ItemTemplate為項模板,標記了每行顯示的內(nèi)容。二是SeparatorTemplate為分隔符模板,一般為一條線<hr> 

      使用方式:1. 根據(jù)美工制作好的靜態(tài)頁面,將項模板添加到DataList中。 

      2. 找到需要替換的部分,直接替換為綁定語句(Eval, Bind)。 

      3. 綁定數(shù)據(jù)源。 

      2. DataList排序,需要自定義方法,在頁面中綁定的是排好序的數(shù)據(jù)。 

      public static IList<Book> GetBooks(int categoryId, string order) 

      { 

      //組合的sql語句 

      string condition = " WHERE 1=1 "; 

      if (categoryId > 0) 

      condition = " AND CategoryId = " + categoryId; 

      if (order.Trim().Length > 0) 

      condition = " order by " + order; 

      return BookService.GetBooks(condition); 

      } 

      3.DataList分頁 

      1) 使用普通SQL語句實現(xiàn) 

      Select Top 頁容量 * 

      from 表 

      where 條件 and id not in 

      (Select Top 頁容量*(當前頁數(shù)-1) id 

      from 表 

      where 條件 order by 排序條件) 

      order by 排序條件 

      2) SQLSERVER2005方式 

      Select * 

      From 

      ( select ROW_NUMBER() over(order by 排序條件) as 別名 , * from 表名 ) as 新表名 

      Where 別名 between 頁面第一頁號 and 頁面最后一頁號 21--------30 

      Order by 排序條件 

      3) PagedDataSource分頁類方式,指定數(shù)據(jù)源和當前頁,PageSize即可使用,類自動計算其他相關(guān)屬性。 

      //1.聲明分頁類 

      PagedDataSource pdsBook = new PagedDataSource(); 

      //2.綁定數(shù)據(jù)源 

      pdsBook.DataSource = BookManager.GetOrderedSmallBooksByCategoryId(categ oryID, ViewState["order"].ToString()); 

      //3.設(shè)置分頁類可以分頁 

      pdsBook.AllowPaging = true; 

      //4.設(shè)置每頁顯示的行數(shù) pdsBook.PageSize = 4; //5.設(shè)置當前為第幾頁 

      pdsBook.CurrentPageIndex = CurrentPage; 

      lblCurrentPage.Text = string.Format("第 {0} 頁,共 {1} 頁",CurrentPage+1,pdsBook.PageCount.ToString()); 

      //6.將分頁類綁定到DataList 

      dlBooks.DataSource = pdsBook; 

      dlBooks.DataBind(); 

      4.ViewState 為頁面級的狀態(tài)保持,僅在當前頁面有效,不占用系統(tǒng)Session資源,利用IsPostBack屬性對ViewState屬性賦初值,可避免使用時NULL的判斷。 

      使用方式:ViewState["名稱"]=值 例如將頁數(shù)0存入ViewState可以這樣寫 ViewState["Page"]=0 ; 

      事實上,ViewState狀態(tài)保持就是在頁面放置一個隱藏域,每次數(shù)據(jù)回傳,隱藏域內(nèi)容也一起回傳,從而達到狀態(tài)保持效果 

      顯示為 : <input type="hidden" name="_VIEWSTATE" value=""> 

      5. Repeater控件專門用于精確內(nèi)容的顯示,不會自動生成任何用于布局的代碼,完全通過模板控件。當美工提供的設(shè)計頁沒有Table,樣式都在CSS中時可使用。 

      使用方式同DataList,另外分頁,排序也同DataList,代碼可以重用。 

      6. 發(fā)布RSS 了解內(nèi)容 

      過程:制作RSS模板,設(shè)置頁面輸出為XML,去掉所有HTML源代碼只留下Repeater控件,使用RSS模板替換相關(guān)項,使用RSS閱讀工具訪問該RSS頁。 

      注意:顯示字段使用HtmlEncode編碼處理。 

      7.DataList控件、Repeater控件、GridView控件各自特點 

      GridView控件最簡單方便,效率最低 

      Repeater控件最完善,最難用,全手工,效率最高 

      DataList控件介于兩者之間,效率接近Repeater,使用范圍最廣。 

      第八章: 

      1.FreeTextBox控件 是一種富文本控件,也就是在線文本編輯控件,可以像Word編輯器那樣對錄入的內(nèi)容設(shè)置樣式,排版等,而不用編寫HTML代碼。 

      常見的有: 

      ① RichTextBox,最早的富文本控件,富文本控件因它而得名。 

      ② FCKeditor,是國外一個開源的項目。 

      ③ CuteEditor,功能最完善,但它自身也是相當龐大的。 

      ④ eWebEditor,國產(chǎn)軟件,有中國特色。 

      ⑤ FreeTextBox,簡單方便,在國內(nèi)使用相當普遍。 

      使用方法: 

      1) 添加控件進入工具箱 

      2) 添加選項卡。右擊工具欄,選擇“添加選項卡”命令。 

      3) 選擇項。右擊選項卡,點擊“選擇項”命令。然后,單擊“瀏覽”按鈕,找到并選擇需要加入的FreeTextBox.dll,單擊打開按鈕。 

      4) 單擊“確定”按鈕。 

      5) 頁面使用 把FreeTextBox控件拖入頁面,可以看到頁面種多了幾行代碼: 

      <% Register Assembly=”FreeTextBox” Namespace=”FreeTextBoxControls” TagPrefix=”FTB” %> 

      <FTB:FreeTextBox ID=”FreeTextBox1” runat=”server”></FTB:FreeTextBox> 

      大意:注冊一個叫做FreeTextBox的程序,命名空間是FreeTextBoxControls,標簽前綴是FTB。 

      常用屬性:Language(語言),注明”en-US”為英語,改成”zh-CN”就能換成中文了。 

      2.驗證碼控件Webvalidates 

      1)使用步驟:將Webvalidates添加進工具箱同添加FreeTextBox方式。 

      2) 生成驗證碼: snCode.Create(); //snCode為驗證碼控件名稱,一般在PageLoad中 If(!IsPostBack) { snCode.Create(); } 

      3) 檢查所輸入的信息與驗證碼是否相同 snCode.CheckSN(txtCode.Text.Trim()) //返回bool型的值 

      自定義方法判斷驗證碼是否正確 

      Protected bool CeckCode() 

      { 

      if (snCode.CheckSN(txtCode.Text.Trim())) return true; 

      else { snCode.Create(); return false; } //如果驗證碼輸入不正確,則生成新驗證碼 

      } 

      第九章: 

      1.用戶控件:后綴名為ascx ,是一種自定義的組合控件,可以封裝獨立的功能,可像控件一樣使用托拽方式 

      作用:頁面代碼的重用。 

      使用:添加新項,選擇Web用戶控件(后綴ascx),在其中放置相關(guān)的web控件,編寫后臺代碼。然后在其它頁面中直接拖到頁面中即可。 

      注意:用戶控件可以包含其它用戶控件,但不可以嵌套包含。即用戶控件1包含用戶控件2,用戶控件2又包含了用戶控件1,則會出錯。 

      用戶控件不可以單獨訪問。在URL中直接訪問會出錯。 

      用戶控件與頁面的區(qū)別 詳見書上第229頁。 

      2.數(shù)字水印實現(xiàn):見第9章總結(jié)介紹。自己添加到本頁面。 

      1) 創(chuàng)建HttpHandle程序:添加新項----一般處理程序(后綴.ashx) 

      注意:實現(xiàn)HttpHandler功能必須實現(xiàn)IHttpHandler接口,任何實現(xiàn)該接口的類都可以用于處理輸入的Http請求。 

      2) 數(shù)字水印實現(xiàn) 

      思路:.ashx文件方式實現(xiàn)數(shù)據(jù)水印思路分析 

      獲得URL傳的參數(shù)ISBN; 根據(jù)ISBN查找相對應(yīng)的封面圖片; 

      將數(shù)字水印圖片“粘貼”在封面圖片的右下角; 

      修改程序的輸出類型,并將組合出的新圖片輸出。 

      修改頁面中訪問該圖片的路徑。 

      具體代碼:P235到P236 

      注意:當制作好一般處理程序后修改圖片路徑 BookCover.ashx ? ISBN=值 

      3.全局Handler方式實現(xiàn)數(shù)字水印 

      1)新建類,讓該類實現(xiàn)IHttpHandler接口,實現(xiàn)方法 

      2)在web.config中注冊類,設(shè)置路徑 

      <httpHandlers> 

      <add verb=”*” path=”Images/BookCovers/*.jpg” type=”CoverHandler” /> 

      </httpHandlers> 

      說明:verb:get,post,ftp等 

      Path:訪問路徑,此處表示所有針對”Images/BookCovers/”路徑中所有對.jpg的請求都交給CoverHandler類進行處理 

      Type:指定處理程序的類(CoverHandler) 

      具體代碼:P240 

      注意:在IIS上使用該方式要做其他處理,因為IIS功能比較完善,可以獨立處理一些訪問請求,比如.html,.jpg等都不會提交給ASP.NET處理。 

      對IIS進行處理:打開IIS,虛擬目錄屬性項,目錄欄中選“配置”,添加擴展名。 

      第十章: 

      1.ASP.NET的兩種配置文件,都是基于XML格式的。 

      1) machine.config:又稱服務(wù)器配置文件,提供整個機器的默認配置,對該文件的修改將影響所有本機的站點。 

      2) web.config:一般用于應(yīng)用程序級別的配置文件,對其修改不影響其他站點,也可以用于站點下的子目錄。 

      注意:當一個網(wǎng)站中配置了多個web.config文件時以就近原則為準。 

      2.Web.config中配置連接字符串 

      1) 配置 <connectionStrings> 

      <add name="MyBookShop" connectionString="Data Source=localhost; Initial Catalog=MyBookShop; User ID=sa; password=d@e26c#"/> 

      </connectionStrings> 

      2) 讀取 數(shù)據(jù)訪問層的類庫引用該類需要手動添加System.Configuration類庫的引用,再在需要讀取配置節(jié)的頁面using System.Configuration; 

      然后使用如下方式讀取 string connectionString=ConfigurationManager.ConnectionSt rings[“MyBookShop”].ConnectionString; 

      3.加密解密 

      1) 加密web.config里面connectionStrings配置節(jié) 

      aspnet_regiis.exe -pef "connectionStrings" "你的Web項目路徑" -prov "DataProtectionConfigurationProvider" 

      eg:aspnet_regiis.exe -pef "connectionStrings" "E:\WKJ\MyBookShop\web" -prov "DataProtectionConfigurationProvider" 

      2) 解密web.config里面connectionStrings配置節(jié) 

      aspnet_regiis.exe -pdf "connectionStrings" "你的Web項目路徑" 

      eg:aspnet_regiis.exe -pdf "connectionStrings" "E:\WKJ\MyBookShop\web" 

      4.身份驗證 

      1) Windows身份驗證 安全性高,只能在windows平臺可以使用,并且在域中要有一個帳戶 

      2) Passport身份驗證 需要付費 

      3) Forms身份驗證 使用廣泛 

      <system.web> 

      <authentication mode="Forms"> 

      <forms name="AdminUser" loginUrl="~/Admin/AdminLogin.aspx" timeout="60"> 

      </forms> 

      </authentication> 

      </system.web> 

      注意:1) authentication中的mode指定驗證方式,分別有Windows、Passport和Forms 

      2) forms中的name為cookie名稱,默認為.ASPXAUTH。 

      loginUrl為表單驗證的登錄頁面,未通過驗證的用戶都轉(zhuǎn)到該頁面。 

      Timeout為表單驗證的有效時間,即是cookie的過期時間 

      5.授權(quán) 

      <system.web> 

      <authorization> 

      <deny users="?"/> 

      <allow roles="admin"> 

      <deny users="*"/> 

      </authorization> 

      </system.web> 

      其中:deny為拒絕,allow為允許。“ * ”代表所有用戶,“ ? ” 代表匿名用戶 

      6.設(shè)置票證 System.Web.Security.FormsAuthentication.SetAuthCoo kie(user.Name, true); 注意true為設(shè)置持久化,設(shè)置為false則當前頁面關(guān)閉cookie失效 

      刪除票證 System.Web.Security.FormsAuthentication.SignOut( ); 刪除票證后Cookie失效 注意:當未經(jīng)授權(quán)的用戶訪問頁面時,會轉(zhuǎn)向登錄頁要求注冊。 

      在登錄成功后: string strRedirect = Request[“ReturnUrl”]; 可得到用戶請求的頁面 

      If(strRedirect == null) 則轉(zhuǎn)向自己處理的頁面 

      Else Response.Redirect(strRedirect); 轉(zhuǎn)向用戶所請求的頁面。 

      7.其他常用配置 

      1) 自定義錯誤配置節(jié) 

      <customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.htm"> 

      <error statusCode="404" redirect="FileNotFound.htm" /> 

      </customErrors> 

      Mode: On表示啟用自定義錯誤 

      Off表示禁用自定義錯誤 

      RemoteOnly表示只顯示個遠程客戶機,本地調(diào)試顯示正常錯誤 

      2) 應(yīng)用程序運行時配置 

      <httpRuntime enable="true" executionTimeout="90" maxRequestLength="4096" /> 

      enable: true該應(yīng)用程序為啟動狀態(tài), false 相當于關(guān)閉該站點 

      maxRequestLength:控制上傳內(nèi)容的大小,默認4MB。 

      </httpRuntime> 

      3) 調(diào)試配置 

      <compilation debug="true"/> true為允許調(diào)試,否則為不允許調(diào)試 

      8.部署 

      1) 好處:隱藏源代碼,優(yōu)化程序運行效果 

      2) 部署前的準備:第一關(guān)閉調(diào)試,調(diào)試符號會降低性能,第二將工程改為Release(發(fā)行版)方式 

      3) 部署的方法: 

      31) XCopy,最簡單方便的方式 使用如下:xcopy 源目錄 目標目錄 /f /e /k /h 

      32) 復(fù)制網(wǎng)站(Copy Web Site),類似ftp上傳 先選擇復(fù)制網(wǎng)站,點擊復(fù)制即可 

      33) 發(fā)布網(wǎng)站(預(yù)編譯)最常用 右鍵-發(fā)布網(wǎng)站-選擇路徑,最通用 

      很抱歉,因為您在網(wǎng)易相冊發(fā)布了違規(guī)信息,賬號被屏蔽。被屏蔽期間他人無法訪問您的相冊。 

      去幫助中心,了解如何重新恢復(fù)服務(wù)。 

    posted on 2012-05-21 15:56 ** 閱讀(524) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學(xué)習

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费精品视频在线| 亚洲第一男人天堂| 亚洲色无码专区在线观看| 曰韩亚洲av人人夜夜澡人人爽| 亚洲色爱图小说专区| 亚洲风情亚Aⅴ在线发布| 国产精品亚洲综合| 免费一级特黄特色大片| 国产乱码免费卡1卡二卡3卡| 永久免费av无码不卡在线观看| 国产亚洲?V无码?V男人的天堂 | 亚洲第一极品精品无码久久| 亚洲精品无码久久久久| 亚洲黄色网站视频| 亚洲午夜无码久久久久软件| 本道天堂成在人线av无码免费| 日本一区二区三区日本免费| 国产免费黄色大片| 成人A级毛片免费观看AV网站| 亚洲国产成人久久一区久久| 亚洲日韩精品一区二区三区无码| 亚洲av无码专区在线电影| 女人隐私秘视频黄www免费| 久久九九全国免费| 成年女人免费视频播放77777| 免费一级肉体全黄毛片| 亚洲AV日韩精品久久久久久 | 美女视频黄.免费网址| 无码人妻丰满熟妇区免费| 成年人网站免费视频| 日本一道高清不卡免费| 亚洲五月综合网色九月色| a一级爱做片免费| 免费人成无码大片在线观看| 亚洲爆乳成av人在线视菜奈实 | 国产亚洲人成A在线V网站| 免费一区二区三区在线视频| 免费观看国产精品| 国产成人精品亚洲| 国产乱色精品成人免费视频| 日本亚洲欧美色视频在线播放 |