<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總結

    ASP.NET總結

    2009年09月24日

      第一章: 

      1.ASP.NET優點: 

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

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

      2.IIS:基于Windows系統的Web服務器的,ASP.NET的發布是基于IIS服務器的,類似JSP中使用Tomcat。在VS中,內置了輕量級的Web服務器,為Cassini,無須配置IIS。 

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

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

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

      第二章: 

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

      2.Asp.net中常見的系統對象 

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

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

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

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

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

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

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

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

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

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

      第三章: 

      1.Asp.net控件 

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

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

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

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

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

      4.導航控件 

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

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

      Menu控件:使用方式與TreeView控件一致,只是Menu控件可顯示靜態或動態的,使用StaticDisplayLevels屬性設置靜態或動態,默認為1即動態,可設置相應級別數設置為靜態。 

      5.母版頁:應用于統一的布局。網站右鍵添加新項選擇母版頁,默認命名為MasterPage.master,可改名。設置母版頁樣式,可添加內容頁。 

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

      第五章: 

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

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

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

      3.ObjectDataSource重要屬性 

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

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

      設置數據源方式綁定GridView:this.gvMain.DataSourceId=數據源id; 

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

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

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

      3) ButtonField 按鈕列,可通過CommadName設置按鈕命令,自定義代碼實現按鈕觸發后操作。 

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

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

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

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

      6.Bind方法與Eval方法的區別: 

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

      Bind支持讀寫功能,為雙向數據綁定,所綁定內容自動提交回服務器,常與輸入控件一起使用。 <%#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事件更改選定項內容時觸發,僅當AutoPostBack屬性設置為true時有效。 

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

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

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

      第六章: 

      1.驗證控件,可以輕松實現用戶輸入的驗證,且與用戶瀏覽器無關。由在客戶端或服務器中運行的驗證代碼執行,主要為客戶端。 

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

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

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

      ControlToValidate為所要驗證的控件的ID 

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

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

      1) RequiredFieldValidator 非空驗證 

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

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

      3) RangeValidator 用于檢查范圍 

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

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

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

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

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

      例如驗某個文本框值的長度,要求必須大于6位 

      Function CheckLength(source,args) 

      { 

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

      Else args.IsValid=true ; 

      } 

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

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

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

      使用方法 :1. 將My97DatePicker放入站點中的一個目錄,假設放于網站的根目錄。 

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

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

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

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

      使用方法: 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.點擊更新時,將圖片上傳到服務器,在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可表現為一個窗口,而MultiView為View控件提供容器。一個MultiView可有多個View 

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

      5.ImageMap可以將圖片轉變為導航菜單,可對圖片區域進行劃分,為區域賦予特定屬性,類似于HTML中的熱點(map標簽) 

      為了解內容,詳細見書160頁 

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

      第七章: 

      1.DataList 以某種格式顯示數據,格式可使用模板和樣式定義,可用于任何重復結構中的數據,比如說表,使用<Table>等相關元素在列表中呈現項。 

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

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

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

      3. 綁定數據源。 

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

      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語句實現 

      Select Top 頁容量 * 

      from 表 

      where 條件 and id not in 

      (Select Top 頁容量*(當前頁數-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分頁類方式,指定數據源和當前頁,PageSize即可使用,類自動計算其他相關屬性。 

      //1.聲明分頁類 

      PagedDataSource pdsBook = new PagedDataSource(); 

      //2.綁定數據源 

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

      //3.設置分頁類可以分頁 

      pdsBook.AllowPaging = true; 

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

      pdsBook.CurrentPageIndex = CurrentPage; 

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

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

      dlBooks.DataSource = pdsBook; 

      dlBooks.DataBind(); 

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

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

      事實上,ViewState狀態保持就是在頁面放置一個隱藏域,每次數據回傳,隱藏域內容也一起回傳,從而達到狀態保持效果 

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

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

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

      6. 發布RSS 了解內容 

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

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

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

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

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

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

      第八章: 

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

      常見的有: 

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

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

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

      ④ eWebEditor,國產軟件,有中國特色。 

      ⑤ FreeTextBox,簡單方便,在國內使用相當普遍。 

      使用方法: 

      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),在其中放置相關的web控件,編寫后臺代碼。然后在其它頁面中直接拖到頁面中即可。 

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

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

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

      2.數字水印實現:見第9章總結介紹。自己添加到本頁面。 

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

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

      2) 數字水印實現 

      思路:.ashx文件方式實現數據水印思路分析 

      獲得URL傳的參數ISBN; 根據ISBN查找相對應的封面圖片; 

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

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

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

      具體代碼:P235到P236 

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

      3.全局Handler方式實現數字水印 

      1)新建類,讓該類實現IHttpHandler接口,實現方法 

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

      <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:又稱服務器配置文件,提供整個機器的默認配置,對該文件的修改將影響所有本機的站點。 

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

      注意:當一個網站中配置了多個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) 讀取 數據訪問層的類庫引用該類需要手動添加System.Configuration類庫的引用,再在需要讀取配置節的頁面using System.Configuration; 

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

      3.加密解密 

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

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

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

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

      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為表單驗證的登錄頁面,未通過驗證的用戶都轉到該頁面。 

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

      5.授權 

      <system.web> 

      <authorization> 

      <deny users="?"/> 

      <allow roles="admin"> 

      <deny users="*"/> 

      </authorization> 

      </system.web> 

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

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

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

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

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

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

      7.其他常用配置 

      1) 自定義錯誤配置節 

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

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

      </customErrors> 

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

      Off表示禁用自定義錯誤 

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

      2) 應用程序運行時配置 

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

      enable: true該應用程序為啟動狀態, false 相當于關閉該站點 

      maxRequestLength:控制上傳內容的大小,默認4MB。 

      </httpRuntime> 

      3) 調試配置 

      <compilation debug="true"/> true為允許調試,否則為不允許調試 

      8.部署 

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

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

      3) 部署的方法: 

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

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

      33) 發布網站(預編譯)最常用 右鍵-發布網站-選擇路徑,最通用 

      很抱歉,因為您在網易相冊發布了違規信息,賬號被屏蔽。被屏蔽期間他人無法訪問您的相冊。 

      去幫助中心,了解如何重新恢復服務。 

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


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


    網站導航:
     

    導航

    統計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學習

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲国产精品香蕉网| 久久这里只精品99re免费| 亚洲精品宾馆在线精品酒店| 亚洲电影免费观看| 亚洲男女性高爱潮网站| 久久精品国产亚洲av麻豆色欲| 亚洲丁香色婷婷综合欲色啪| 久久久久亚洲AV无码专区首| 亚洲五月六月丁香激情| **一级毛片免费完整视| 最近中文字幕免费mv在线视频| 91福利免费视频| 久久九九兔免费精品6| 无码国产精品一区二区免费式直播| 和老外3p爽粗大免费视频| 久99久无码精品视频免费播放| 中文字幕免费在线看| 在线成人爽a毛片免费软件| 久视频精品免费观看99| 免费观看黄网站在线播放| 男女啪啪永久免费观看网站| 午夜国产大片免费观看| 亚洲中文字幕无码久久综合网| 日本媚薬痉挛在线观看免费| 国产小视频免费观看| 国产成人亚洲精品影院| 亚洲国产精品无码一线岛国| 亚洲综合久久成人69| 亚洲精品人成网线在线播放va| 国产亚洲精品91| a级毛片毛片免费观看久潮| 久久A级毛片免费观看| 成年人免费网站在线观看| 亚洲国产电影av在线网址| 国产精品免费网站| 无码国产精品一区二区免费式芒果 | 日韩免费高清一级毛片在线| 亚洲国产精品不卡毛片a在线| 亚洲av无码潮喷在线观看| 99999久久久久久亚洲| 亚洲精品国产肉丝袜久久|