真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

asp.netvbc的簡(jiǎn)單介紹

運(yùn)行ASP.NET出現(xiàn)System.Runtime.InteropServices.ExternalException是什么原因

具體錯(cuò)誤詳情呢?調(diào)用什么是時(shí)候出錯(cuò)了?

創(chuàng)新互聯(lián)成立于2013年,先為斗門等服務(wù)建站,斗門等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為斗門企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

堆棧跟蹤呢?嘗試刪除所有編譯文件后再試試。

vb.net和asp.net的區(qū)別

VB.NET是一種.NET編程語(yǔ)言,與之平行的是C#

VC++.NET

等.

net語(yǔ)言

ASP.NET

是一種使嵌入網(wǎng)頁(yè)中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的

服務(wù)器端

腳本技術(shù)。

簡(jiǎn)單地說(shuō)就是編寫網(wǎng)站的技術(shù)

,與之平行的是PHP,ASP等.

ASP.NET后臺(tái)代碼可用VB.NET

C#編寫.

ASP.NET設(shè)計(jì)控件凈化網(wǎng)站語(yǔ)言

一 概述

考慮一下這種情形 你為一個(gè)Web網(wǎng)站寫了一個(gè)應(yīng)用程序 它的功能是接受用戶的輸入并將輸入內(nèi)容永久保存 例如保存到數(shù)據(jù)庫(kù) 另外還要在網(wǎng)站上顯示出用戶輸入的內(nèi)容 例如論壇就是一個(gè)很典型的例子

如果用戶來(lái)源很雜 必須考慮如何防止用戶提交和張貼攻擊性(或者色情的 庸俗的)的內(nèi)容 可能的解決方案包括

⑴ 將用戶群限制到一個(gè)封閉的用戶團(tuán)體 即要求用戶使用程序功能之前必須先注冊(cè)/登錄 這樣 由于每次提交的內(nèi)容都可以追查到提交者 用戶破壞網(wǎng)站規(guī)則的可能性就小了很多 如果有用戶做出了不應(yīng)該做的事 你就可以核實(shí)用戶身份 予以相應(yīng)的處理

⑵ 在網(wǎng)站上發(fā)布用戶提交的內(nèi)容之前 先由管理員審閱 很多時(shí)候 由于人力資源有限 這個(gè)辦法不一定行得通

⑶ 禁止用戶提交攻擊性內(nèi)容 這是最理想的解決辦法 把問(wèn)題解決在起源 但具體應(yīng)該怎么實(shí)現(xiàn)呢?

本文介紹的方案以一個(gè)復(fù)合控件為基礎(chǔ) 利用一個(gè)XML文件來(lái)定義攻擊性詞語(yǔ) 我們將用VB NET編寫這個(gè)復(fù)合控件 用普通的文本編輯器和命令行編譯器(vbc)完成整個(gè)工程的構(gòu)建

在正式編寫控件之前 首先我們來(lái)簡(jiǎn)單地回顧一下ASP NET中控件的概念 本文出現(xiàn)的所有控件都是服務(wù)器控件 它們?cè)诜?wù)器上運(yùn)行 將HTML代碼發(fā)送到客戶端 要理解控件的分類 可以從控件是否嵌入到Web表單頁(yè)面(因而采用按需編譯方式)或預(yù)先編譯的角度來(lái)觀察 微軟定義了下列ASP NET服務(wù)器控件 HTML服務(wù)器控件 Web服務(wù)器控件 驗(yàn)證控件 用戶控件

前三種控件讀者應(yīng)該已經(jīng)比較熟悉了 對(duì)于開發(fā)者來(lái)說(shuō) 它們是最簡(jiǎn)單的控件類型 在ASP NET中已經(jīng)由微軟為我們編寫好 用戶控件則有所不同 用戶控件是 包裝 成 ascx頁(yè)面形式的 aspx頁(yè)面 其他 aspx頁(yè)面可以通過(guò)注冊(cè)和實(shí)例化來(lái)調(diào)用用戶控件的功能 這是一種被寄予厚望的服務(wù)器端控件 對(duì)于ASP/ASP NET開發(fā)者來(lái)說(shuō) 它代表著一大進(jìn)步 特別地 現(xiàn)在編寫控件的語(yǔ)言已經(jīng)全面支持面向?qū)ο蠹夹g(shù)

ASP NET用戶控件由一個(gè)或多個(gè)服務(wù)器控件 靜態(tài)HTML元素構(gòu)成 可以包含額外的代碼 每個(gè)用戶控件封裝一組特定的功能 用戶控件可以通過(guò)簡(jiǎn)單地?cái)U(kuò)展現(xiàn)有服務(wù)器控件(控件組)得到 例如 帶有旋轉(zhuǎn)功能的圖形控件 在文本框中保存日期的日歷控件

二 開發(fā)復(fù)合控件

控件要檢查用戶提交的內(nèi)容是否包含 攻擊性 詞語(yǔ) 攻擊性詞語(yǔ)由一個(gè)XML文件定義 XML文件的結(jié)構(gòu)如下

<?xml version= ? encoding= GB ><words><word>詞語(yǔ)一</word><word>詞語(yǔ)二</word></words>

本文的復(fù)合控件(Composite)包含三個(gè)ASP NET服務(wù)器控件 一個(gè)Textbox控件 一個(gè)Label控件 還有一個(gè)Button控件 當(dāng)用戶點(diǎn)擊Button控件 Composite檢查用戶提交的文本是否包含了XML文件中指定的詞語(yǔ)(XML文件的默認(rèn)名字是bad_words xml 通過(guò)一個(gè)自定義屬性定義) 并拋出一個(gè)自定義事件 另外 Composite控件還將它的Label子控件的一個(gè)Text屬性顯露成頂級(jí)屬性

復(fù)合控件可以有選擇地將子控件顯露成屬性 或者有選擇地將子控件的屬性和事件作為頂級(jí)屬性和事件顯露出來(lái) 當(dāng)復(fù)合控件整合來(lái)自子控件的屬性時(shí) 它通常只是簡(jiǎn)單地委托子控件執(zhí)行操作 如下面的例子所示

// 將操作委托給標(biāo)簽對(duì)象 標(biāo)簽對(duì)象是一個(gè)// System Web UI WebControls Label的實(shí)例Public Property Text() As StringGetEnsureChildControls()Return label TextEnd GetSetEnsureChildControls()label Text = valueEnd SetEnd Property

我們需要一個(gè)文本輸入框讓用戶輸入內(nèi)容 一個(gè)按鈕來(lái)提交表單 還要一個(gè)向用戶反饋信息的文本標(biāo)簽 下面我們來(lái)看看Web表單的代碼 復(fù)合控件就是在這里實(shí)例化的

【posite aspx】

<%@ page language= vb debug= false trace= false %><%@ Register TagPrefix= Custom Namespace= CustomControls Assembly = CustomControls %><><script language= VB runat=server>Private Sub CheckText(sender As Object e As CheckEventArgs)If e Match = false ThenComposite Text = <h >發(fā)布內(nèi)容請(qǐng)遵守本站規(guī)則!不得發(fā)布攻擊性言辭?。?h > ElseComposite Text = 你提交的內(nèi)容已通過(guò)檢查! End IfEnd Sub </script>

<body>

<h >語(yǔ)言凈化控件實(shí)例</h ><br><form runat=server><Custom:Composite id = Composite OnCheck = CheckText filename = bad_words xml runat = server/></form></body></>?

上面的代碼首先注冊(cè)指定的復(fù)合控件 我們將把控件的代碼編譯成一個(gè) dll文件 放入應(yīng)用的bin目錄 這是ASP NET首先搜索的位置 在Web表單構(gòu)成的用戶界面中 我們實(shí)例化了自定義控件 同時(shí)指定了

⑴ 當(dāng)控件拋出OnCheck事件 執(zhí)行一個(gè)本地的子過(guò)程CheckText 我們把復(fù)合控件的標(biāo)簽的文本通過(guò)一個(gè)公用屬性顯露出來(lái) 標(biāo)簽的內(nèi)容由OnCheck事件句柄設(shè)置的另一個(gè)公用屬性決定

⑵ 定義攻擊性詞語(yǔ)的XML文件的名字

⑶ 另外 我們還定義了一個(gè)由復(fù)合控件調(diào)用的CheckText子過(guò)程

現(xiàn)在來(lái)看復(fù)合控件本身 復(fù)合控件有兩個(gè)類 用兩個(gè)獨(dú)立的VB源文件實(shí)現(xiàn) 分別是posite vb和checkevent vb

【posite vb】

Imports SystemImports System WebImports System Web UIImports System Web UI WebControlsImports System XmlImports System Collections

Namespace CustomControlsPublic Class CompositeInherits ControlImplements INamingContainerPrivate _filename As String = bad_words xml Private label As LabelPrivate box As TextBox

Public Property filename() As StringGetReturn _filenameEnd GetSet_filename = valueEnd SetEnd Property

以用戶提交的文本內(nèi)容為輸入?yún)?shù) 如果用戶提交的內(nèi)容包含攻擊性言辭 則返回修改后的版本 否則 直接返回原始的文本 Public Function CheckString(InputString as String) as stringDim alWordList As new ArrayListdim xmlDocPath as string = mappathsecure( bad_words xml )dim xmlReader as XmlTextreader = new xmlTextReader(xmlDocPath)dim element as stringdim output as stringdim asterisks as string = *************************

將定義攻擊性言辭的xml文件內(nèi)容讀入到一個(gè)ArrayLishile (xmlReader Read())if xmlReader NodeType=xmlNodeType Text thenalWordList Add(xmlReader Value)end ifend whilexmlReader Close()

檢查用戶提交的文本內(nèi)容 將攻擊性言辭替換為適當(dāng)數(shù)量的星號(hào)For Each element in alWordListInputString=InputString Replace(element asterisks substring( (element length)))Next

Return InputString

End Function

Public Property Text() As StringGet 該方法首先檢查ChildControlsCreated屬性的當(dāng)前值 如果該值是false 則調(diào)用CreateChildControls方法EnsureChildControls()Return label TextEnd GetSetEnsureChildControls()label Text = valueEnd SetEnd Property

Public Event Check As CheckEventHandler

Protected Overridable Sub OnCheck(ce As CheckEventArgs)RaiseEvent Check(Me ce)End Sub

創(chuàng)建Composite控件的子控件Protected Overrides Sub CreateChildControls()

Controls Add(New LiteralControl( <h >請(qǐng)?jiān)谙旅孑斎胛淖謨?nèi)容: ))

文本輸入框Dim box As New Textbox()box Text = Controls Add(box )

Controls Add(New LiteralControl( </h > ))

按鈕Dim button As New Button()button Text = 提交 Controls Add(New LiteralControl( <br> ))Controls Add(button )

將一個(gè)事件句柄加入新創(chuàng)建的按鈕對(duì)象AddHandler button Click AddressOf Me ButtonClicked

Controls Add(New LiteralControl( <br><br> ))label = New Label()label Height = Unit Pixel( )label Width = Unit Pixel( )label Text = Controls Add(label)End Sub

Protected Overrides Sub OnPreRender(e As EventArgs)CType(Controls( ) TextBox) Text = End Sub

Private Sub ButtonClicked(sender As [Object] e As EventArgs)OnCheck(New CheckEventArgs(CType(Controls( ) TextBox) Text CheckString(CType(Controls( ) TextBox) Text)))End SubEnd ClassEnd Namespace

上面代碼的主要任務(wù)是

⑴ 首先導(dǎo)入必要的名稱空間 聲明當(dāng)前類所屬的名稱空間

⑵ 接下來(lái)定義Composite的主體 Composite從最基本的Control類繼承 另外還要實(shí)現(xiàn)INamingContainer接口 INamingContainer接口允許Composite控件將事件轉(zhuǎn)發(fā)到它的Button子控件

⑶ 用CreateChildControls方法(而不是OnInit或構(gòu)造函數(shù))創(chuàng)建子控件

⑷ Composite控件沒有顯露出Button子控件的Click事件 相反 它處理了Click事件 并拋出自定義事件Check

⑸ Composite控件顯露了下列公用屬性 Text 即Label子控件的Text屬性值 FileName 允許獲取和設(shè)置定義攻擊性詞語(yǔ)的XML文件的名字

⑹ 主要的檢查功能由CheckString方法實(shí)現(xiàn) 它的輸入?yún)?shù)是一個(gè)文本字符串 CheckString方法從XML文件讀取禁用的詞語(yǔ) 放入一個(gè)數(shù)組列表(ArrayList) 然后檢查指定的字符串是否包含禁用的詞語(yǔ) 所有 攻擊性 的詞語(yǔ)將被適當(dāng)數(shù)量的 * 替代

⑺ OnPreRender清除文本框子控件的文本

⑻ 當(dāng)用戶點(diǎn)擊按鈕 ButtonClicked開始執(zhí)行 ButtonClicked調(diào)用onCheck子過(guò)程 傳入適當(dāng)?shù)膮?shù)(一個(gè)新建的CheckEventArgs對(duì)象 創(chuàng)建CheckEventArgs對(duì)象的參數(shù)是檢查前和檢查后的文本) OnCheck隨后觸發(fā)一個(gè)事件 該事件將由 aspx頁(yè)面中的代碼處理

【CheckEvent vb】

包含定制事件數(shù)據(jù)類CheckEventArgs的代碼 另外還定義了Check事件的事件句柄Imports SystemNamespace CustomControlsPublic Class CheckEventArgsInherits EventArgsPrivate _match As Boolean = False

Public Sub New(string As String string as String)If string =string Then_match = TrueEnd IfEnd Sub

Public ReadOnly Property Match() As BooleanGetReturn _matchEnd GetEnd PropertyEnd Class

Public Delegate Sub CheckEventHandler(sender As Object ce As CheckEventArgs)End Namespace

CheckEventArgs的構(gòu)造函數(shù)是兩個(gè)字符串 根據(jù)字符串的值設(shè)置相應(yīng)的匹配標(biāo)記_match 另外 上面的代碼還定義了CheckEventHandler事件句柄

編寫好上面的代碼后 如果你沒有安裝IDE 用下面的命令執(zhí)行編譯即可

lishixinzhi/Article/program/net/201311/15751

在ASP.NET中如何使用自定義的名稱空間?

先把你生成的.dllCOPY到BIN目錄下,在要使用的文件中引用命名空間引用.

%@ import namespace="YASPNET"%


本文題目:asp.netvbc的簡(jiǎn)單介紹
分享地址:http://weahome.cn/article/dopogjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部