国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

封裝的一個asp.net驗證碼類

2024-07-10 12:42:02
字體:
供稿:網(wǎng)友
第一個反映是驗證碼的這些屬性是否可以設(shè)置(也就是說是封裝成一個類,然后以暴露公有屬性和方法的方式來使用的,還是在直接在一般處理程序中實現(xiàn)了驗證碼的生成到輸出),結(jié)果比較可惜,是后者...... 里面的算法感覺挺不錯,至少對于我這種對算法幾乎是不懂的人來說是這樣,于是想到去封裝一下她然后無恥地納入自己的類庫中去^^
old原文件如下:點擊下載

首先分析一下這份代碼中的不足(自己覺得的):
1、面向過程式的編程,如果要修改驗證碼的屬性,例如修改字體的大小、背景顏色等細節(jié)的東西,需要去一般處理程序中找到相關(guān)的代碼,修改之。不過這份代碼比較好,把生成驗證碼字符串和生成圖片用不同的方法分開,很容易找到要修改的地方。
2、如果我想把這個功能應(yīng)用到其他地方,例如winform程序中,那么這份代碼沒辦以一個組件(一個dll)形式被復(fù)用,而是被復(fù)制粘貼然后修改...
3、沒有發(fā)現(xiàn)驗證碼生成之后有存起來(- -!)

當然,所謂的不足是相對而言的,就是有時間來思考然后慢慢設(shè)計一個驗證碼類的話肯定能作出一個比較不錯的類出來的,但如果是在做項目并且項目很緊急的話,這樣的代碼其實是比較給力的,那些所謂的面向?qū)ο笤O(shè)計模式代碼解耦啥的都是浮云~~~

接下來是我對這份代碼的修改,首先確定自己要什么樣的效果,就是說封裝起來后我希望怎樣來使用他。首先我希望在使用的時候只需要new一個驗證碼實例(需要的話可以對驗證碼的各個屬性可以任意設(shè)置),然后可以調(diào)用這個實例的某些方法分別以字符串、流、位圖對象、byte數(shù)組的形式獲取到這個驗證碼(說明,這個驗證碼類不包括把驗證碼存進上下文的功能,個人覺得生成驗證碼和把驗證碼存到上下文是兩種不同的功能,沒必要把這功能做到驗證碼類中去)。這樣的話在一般處理程序中代碼就變得異常簡單了,首先只要new出一個驗證碼,然后調(diào)用方法以字符串的形式獲取到這個驗證碼,然后存到上下午中,至于存在Session中或者Cookie中就按照需要來了,驗證碼類不管這些的;然后是調(diào)用另外一個方法以byte數(shù)組的形式獲取到這個驗證碼,這樣通過context.Response.BinaryWrite()方法就可以輸出圖片了,也就是說一般處理程序中只有三句代碼。調(diào)用的代碼大致如下:
代碼如下:
/// <summary>
/// 獲取驗證碼(一般處理程序入口函數(shù))
/// </summary>
/// <param name="context">當前上下文</param>
public void ProcessRequest(HttpContext context)
{
// 創(chuàng)建驗證碼
ValidateCode validateCode = new ValidateCode();
// 獲取驗證碼(字符串),寫入Session
context.Session["SomeValidateCode"] = validateCode.GetString();
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新密市| 长武县| 怀仁县| 保靖县| 罗江县| 抚顺市| 宜州市| 浪卡子县| 威宁| 新源县| 泗洪县| 彰武县| 衡南县| 卫辉市| 五原县| 盈江县| 莱芜市| 九江县| 灵武市| 芜湖县| 隆昌县| 弥勒县| 庆安县| 五台县| 宁陵县| 万年县| 晋城| 习水县| 油尖旺区| 广灵县| 吕梁市| 满城县| 南投县| 阜平县| 孟州市| 阿荣旗| 铁岭市| 隆德县| 奉节县| 黔江区| 仁寿县|