2014年6月29日 星期日

人與人相處,寫的太好了!!

http://www.life.com.tw/?app=view&no=140749

你不問,我不說,這就是距離;
你問了,我不說,這就是隔閡;
你問了,我說了,這就是信任;
你不問,我說了,這就是依賴。


2. 走不進的世界就不要硬擠了,難為了別人,作賤了自己,何必呢?

3. 有時候,不小心知道了一些事,才發現自己所在乎的事是那麼可笑。

4. 誰不虛偽,誰不善變,誰都不是誰的誰。又何必把一些人,一些事看的那麼重要。

5. 其實總是笑的人,真的很需要人疼。

6. 在乎我的人,我會加倍在乎!不在乎我的人,你憑什麼讓我繼續?

7:永遠不要為別人而改變自己,如果不能接受最差的你,也不配擁有最好的你。

《細品有深度的話》

1. 人在的時候,以為來日方長什麼都有機會,其實人生是減法,見一面,少一面。

2. 別人怎麼看你,和你毫無關係,你要怎麼活,也和別人毫無關係。

3. 面子到底多少錢一斤,我們為什麼要在乎別人的看法。

4. 有一天你會明白,善良比聰明更難。聰明是一種天賦,而善良是一種選擇。

5. 不聞不問不一定是忘記了,但一定是疏遠了,彼此沉默太久就連主動都需要勇氣。

6. 不要在心情糟爛差的時候,用決絕的話傷害愛你的人。

7. 有時候,沒有下一次,沒有機會重來,沒有暫停繼續。有時候,錯過了現在,就永遠永遠的沒機會了。

8. 用心甘情願的態度,去過隨遇而安的生活。

9. 所有的問題都是自己的問題。

10. 有時候,我們明明原諒了那個人,卻無法真正快樂起來,那是因為,你忘了原諒自己。

11. 一個人有生就有死,但只要你活著,就要以最好的方式活下去。可以沒有愛情,沒有名牌,但不能沒有快樂。

12. 其實,人都是很賤的,愛你寵你的人你不稀罕,對你冷若冰霜的卻是窮追不捨。最後搞的遍體鱗傷的還是自己。

13. 不要的東西,再好也是垃圾。

14. 如果你沒瞎,就別用耳朵去瞭解我。

15. 真正的牛逼不是你認識多少人,而是你患難的時候還有多少人認識你。

16. 那些不需要解釋的事情,從你張嘴那一刻起,你已經輸了。

……很多人闖進你的生活,只是為了給你上一課,然後轉身離開!

……距離,產生的不是美,而是詮釋了不堪一擊的愛情!

……人生煩惱就12個字. 放不下. 想不開. 看不透. 忘不了!

……女人沒魅力才覺得男人花心,男人沒實力才覺得女人現實!

……慢慢的,長大了,卻感覺變沉默了,懂得多了,卻不快樂了!

……明明不是陌生人,卻裝的比陌生人還陌生。

……在人之上要看得起人,在人之下要看得起自己!

……上帝之所以創造指紋,是因為,他想讓人們知道,其實每個人都有傷痕!

……跟自己說聲對不起,這些年一直沒學會愛自己!

……女人,不需要傾國傾城,只需要一個男人為她傾盡一生!

……在乎才會亂想,不在乎連想都不會想
本篇文章摘取自網路,如有不適當或對文章出處有疑慮,請來信與我們告知,我們將會在最短時間進行撤除

公司請你來幹嘛?(句句令人震撼,不看超級遺憾!)(萬人點閱!私人企業成功法則)

資料來源
http://www.cmoney.tw/notes/note-detail.aspx?nid=12734

公司請你來做什麼?

請你來是解決問題而不是製造問題
如果你不能發現問題或解決不了問題,你本人就是一個問題
你能解決多大的問題,你就坐多高的位子
你能解決多少問題,你就能拿多少薪水
讓解決問題的人高升,讓製造問題的人讓位,讓抱怨問題的人下課
 

問題就是你的機會


1、公司的問題:就是你改善的機會;
2、客戶的問題:就是你提供服務的機會;
3、自己的問題:就是你成長的機會;
4、同事的問題:就是你提供支持建立合作機會;
5、領導的問題:就是你積極解決獲得信任的機會
6、競爭對手的問題:就是你變強的機會。

不要輕易離開團隊,否則你要從零做起


1、不要老想著做不順就放棄,哪個團隊都有問題,哪個團隊都有優點。
2、跟對領導很重要,願意教你的,放手讓你做的領導,絕對要珍惜。
3、團隊的問題就是你脫穎而出的機會,抱怨和埋怨團隊就是打自己耳光,說自己無能,更是在放棄機會!
4、心懷感恩之心,感謝系統給你平台,感謝夥伴給你配合。
5、創造利潤是你存在的核心價值,創業不是做慈善。
6、遇到問題請先思考,只反映問題是初級水平,思考並解決問題才是高級水平。
(來源 網路文章 )

你同意嗎?

想成功先改變!

資料來源
http://www.life.com.tw/?app=view&no=138929


做人想成功,下面就是你必須要做到的:
1、記住,平均每天看電視超過三小時以上的,一定都是那些月收入不超過3千元的,如果你想要月收入超過3千,請不要把時間浪費在電視上,同樣的道理,那些平均每天玩網絡遊戲或聊天超過三個小時以上的,也都是那些月收入不超過3千的。
2、這個世界,有這麼一小撮的人,打開報紙,是他們的消息,打開電視,是他們的消息,街頭巷尾,議論的事他們的消息,彷彿世界是為他們準備的,他們能夠呼風喚雨,無所不能。你的目標,應該是努力成為這一小撮人。
3、如果,你真的愛你的爸媽,愛你的女朋友,就好好得去奮鬥,去拼搏吧,這樣,你才有能力,有經濟條件,有自由時間,去陪她們,去好好愛他們。
4、這個社會,是快魚吃慢魚,而不是慢魚吃快魚。
5、這個社會,是贏家通吃,輸者一無所有,社會,永遠都是只以成敗論英雄。
6、任何一個行業,一個市場,都是先來的有肉吃,後來的湯都沒得喝。
7、這個世界上,一流的人才,可以把三流項目做成二流或更好,但是,三流人才,會把一流項目,做的還不如三流。
8、趁著年輕,多出去走走看看,讀萬卷書,不如行萬里路,行萬里路,不如閱人無數。
9、與人交往的時候,多听少說,這就是,上帝為什麼給我們一個嘴巴兩個耳朵的原因。
10、記得,要做最後出牌的人,出讓別人覺得出其不意的牌,在他們以為你要輸掉的時候,這樣,你才能贏得牌局。
11、不要裝大,對於裝大的人,最好的辦法就是,撿塊磚頭,悄悄跟上去,一下子從背後放到他。
12、不要隨便說髒話,這會讓別人覺得你沒涵養,不大願意和你交往,即使交往,也是敷衍,​​因為他內心認定你素質很差。
13、想要抽煙的時候,先問下周圍的人可不可以,要學會尊重別人,少在女生面前耍酷抽煙,你不知道,其實她們內心很反感。
14、要想進步,就只有吸取教訓,成功的經驗都是歪曲的,成功了,想怎麼說都可以。失敗者沒有發言權,可是,你可以通過他的事例反思,總結教訓,不僅要從自己身上吸取,還要從別人身上吸取。
15、一個年輕人,如果三年的時間裡,沒有任何想法,他這一生,就基本這個樣子,沒有多大改變了。
16、成功者就是膽識加魄力。
17、無論你以後是不是從事銷售部門,都看一下關於營銷的書籍,因為,生活中,你處處都是再向別人推銷展示自己。
18、給自己定一個五年的目標,然後,把它分解成一年一年,半年半年的,三個月的,一個月的,這樣,你才能找到自己的目標和方向。
19、如果我只能送你一句忠告,那就是,這個世界上沒有免費的午餐,永遠不要走捷徑。
不想再窮下去就看下面:
1、給自己定目標,一年、兩年、五年,也許你出生不如別人好,通過努力,往往可以改變70%的命運,破罐子破摔只能和懦弱做朋友。
2、朋友請你吃飯,不要覺得理所當然,請禮尚往來,否則你的名聲會越來越差。
3、好朋友裡面,一定要培養出一個知己,不要以為你有多麼八面玲瓏,到處是朋友,最後真心對你的,只要一個,相信我。
4、不要相信算卦星座命理,那是哄小朋友的,命運掌握在自己手中,坐在家裡等什麼房子,車子,還不如睡一覺做個好夢。
5、不喜歡的人少接觸,但別在背後說壞話,說是非之人,必定是是非之人,謹記,禍從口出。
6、是人都有惰性,這是與生俱來的,但是我們後天可以改變這種惰性,因為有很多人正在改變,對於某種事物或是生意不要等別人做到了,我才想到,不要等別人已經賺到錢了,我才想去做,沒有人相信的是市場和機遇,大家都相信的叫做膨脹。
7、知道自己要幹什麼,夜深人靜,問問自己,將來的打算,並朝著那個方向去實現,而不是無所事事和做一些無謂的事。
8、出路出路,走出去了,總是會有路的,困難苦難,困在家裡就是難,社會普遍認為。
9、作為女人,不要倚老賣老,認為事業跟自己沒關係,以為自己就是洗衣服,做飯,看孩子,那就是大錯特錯。
10、做人,要做到;萬事孝為先,教童品之道,夫妻和諧美,幸福萬年長。但是這些不是拿來用嘴說說就能辦到的,解放初期年代要做到這些,需要付出很大的努力和辛苦,當今現實的社會需要你付出很大的金錢,聰明的人都知道這個道理。
11、空閒時間不要經常上網做無聊的事和玩一些沒有意義的遊戲,讀點文學作品,學習一些經營流程,管理規範,國際時事,法律常識。這能保證你在任何聚會都有談資。
12、寧可錯殺一千次來自各方面的信息,也不放過任何一個有可能成功的機會。只有這樣你才不會去買後悔藥。
13、要做一件事,成功之前,沒有必要告訴其他人。成功之後不用你說,其他人都會知道的。這就是信息時代所帶來的效應。
14、力求上進的人,不要總想著靠誰誰,人都是自私的,自己才是最靠得住的人。
15、面對失敗,不要太計較,天將降大任於斯人也,必先苦其心志,勞其筋骨,餓起體膚,但要學會自責,找到原因,且改掉壞習慣。二十歲沒錢,那很正 常;三十歲沒錢,可能是沒有好的家境,需要更大的努力;四十歲沒錢,只能自己找原因。窮人變成富人是可能的,而且很可能。窮人能窮一輩子,也是必然的,存 在

本篇文章摘取自網路,如有不適當或對文章出處有疑慮,請來信與我們告知,我們將會在最短時間進行撤除


2014年6月28日 星期六

PHP購物車

資料來源
http://yogoman.pixnet.net/blog/post/13644175-%5Bphp%5D%E4%BA%8C%E6%AC%BE%E5%85%8D%E8%B2%BB%E8%B3%BC%E7%89%A9%E8%BB%8A%E7%A8%8B%E5%BC%8F


不要再Best Regards了!英文Email四大問題

資料來源
http://www.businessweekly.com.tw/KBlogArticle.aspx?ID=2010&pnumber=4


問題四:Email 的信末問候語用Best Regards 最禮貌?
email 的結尾只有Best Regards 才最得體嗎?Best Regards 翻成中文,叫做「致上我最高的問候」,是不是感覺有點咬文嚼字?
或許你會有疑問,這句咬文嚼字的問候語,卻常在商業書信出現,竟然還是大家最熟悉的的問候語?為什麼它會這麼常見呢?因為,商業人士的時間永遠不夠用,只想用最快的時間處理一封email,而這句話因為太常出現,所以容易被大家接受,商業人士們也不用絞盡腦汁,去想出一句漂亮的信末問候語。
其實當大家都這麼做的時候,不見得代表這就是最好的用法。範例一是另外幾個常用的信末問候語,都是一些好記又簡單的單字,可以挑選幾個熟記,在下一次寫信時使用,收件者一定會感受到你的用心。
從範例一的表格看來,email 結尾語的選用可是一門大學問,信末結尾語的使用必需考量與email收件人的關係和收件人的互動情況。

SOHO接案平台比較

資料來源
http://haoman.info/soho%E6%8E%A5%E6%A1%88%E5%B9%B3%E5%8F%B0%E6%AF%94%E8%BC%83/

當SOHO族要吃飽穿暖必須比上班族積極,而再拼命找case的同時,我們不要在這麼多外包接案網裡迷失自己了!今天來評評SOHO們接案的幾個平台。

收費的case外包網

一分錢一分貨,付費的網站服務好、案子種類多、案件金額較高、案件分類詳細、每個工作天都有案子更新,一般公司企業比較願意選擇到這類專門的外包網發案子,因此在這些網站找到的案子預算較高。
  1. 若要看發案者資料, 2個月 $1680 | 半年 $3800 | 一年 $6700 方案連結
  2. 已晉升台灣第一大外包平台
  3. 名氣大,會有較具規模的公司主動發案,可見Jcase上面沒有的案件。

  1. 若要看發案者資料, 1個月 $1300 | 3個月 $2800 | 半年 $4800 | 一年 $6300 方案連結
  2. 518網站旗下的外包網站
  3. 名氣大,會有較具規模的公司主動發案,可見Jcase上面沒有的案件。

  1. 費用用點數計,  一次可加值 $1,000 | $3,000 | $5,000 | $7,000 | $10,000 方案連結
  2. 是Aboutcase的前身外包網的創始者
  3. 其他各種服務優於104,如: 提供blog給會員上傳自己的作品,以往案件的報價查詢參考,合約範本下載,等

  1. 若要看發案者資料, 半年 $1050 | 一年 $1890 方案連結
  2. 案件數量中等,會員以個人接案者居多
  3. 美術設計類的案子佔多數
  4. 價格便宜,不過接案資訊和網站功能不是很好,在客戶管理上蠻不方便的,網站有點亂
  5. 有些評鑑及課程可以彌補本身能力的不足

  1. 需繳費才能看聯絡人
  2. 案件數量–每日皆有小量更新

  1. 費用用點數計,  一次可加值 $380 | $680 | $980 | $1580 | $3580 方案連結
  2. 是專業程式下載討論社群網站起家, 案件數量都偏少, 以資訊程式類為主

  1. 1個月150  |  3個月 250 | 半年500 方案連結
  2. 程式設計師/系統分析師/資訊專業人員組成的社群網站, 算是國內設計高手常瀏覽的網站
  3. 案件數量都偏少, 案件主要資訊程式類

觀念:不要以為付了錢一定接的到CASE。

個人SOHO很難與接案公司團隊競爭,不管人力、資源、服務甚至價格等都無法與之競爭,所以初成為soho新鮮人建議從收費少的接案網站開始,累積實力,以免白白花了幾千元的入會費卻接不到案子

是否加入的簡易評估方式:

評估自己接案的種類須接多少case才能回本,
例如:入會費半年3,600元,自己平均接一件3,000元,至少要2件才可以回本,
接著再觀察該網站所提供的case種類,你能接的數量夠不夠,評估下來如果ok就加入了!

免費平台

案量較不穩定,廣告雜亂無章,什麼類型的case都有,預算偏低,且可能要隔好幾天才會出現一件可以接的case。
Kijiji、PTT的SOHO板、黑秀網、設計魔力、其他專業的論壇等都屬此類。
新手或學生兼差適合從這裡發跡,專業的SOHO要靠這些免費平台太浪費時間,又糊不了口(案子價格較低, 案件數量又少)

2014年6月21日 星期六

ASP.NET後台建置



http://www.blueshop.com.tw/board/show.asp?subcde=BRD20120402103421A2Q&fumcde=FUM20041006161839LRJ&odr=cdt&odrtyp=0

http://mvc.keigen.net/2012/01/blog-post_31.html
http://mvc.keigen.net/2012/02/aspnet-sql-server.html
http://mvc.keigen.net/2012/02/blog-post.html

學習ASP.NET 2.0會員機制三部曲

你的 WebConfig 可能必須增加 AspNetSqlMembershipProvider 與
AspNetSqlRoleProvider 的 設定 ,並指定其 使用 的 CoonectionString. 
可參考 Machine.config 中的設定.
或者 直接修改 Machine.config 中的設定.

ASP.NET Web Form 後台管理介面版型與範例程式 ( C# + VB.NET )
http://code.msdn.microsoft.com/wpapps/Advanced-ASPNET-Administrat-f980b166

ASP.NET MVC 使用 Area - 以 Backend 後台為例



2014年6月20日 星期五

輸入資料的,真的是人:Auto-Input Protection for ASP.NET

http://msdn.microsoft.com/zh-tw/ee854995.aspx

輸入資料的,真的是人:Auto-Input Protection for ASP.NET

Codeplex 軟體套件(Package)資訊
套件名稱Auto-Input Protection for ASP.NET
作者Dave Sexton
目前版本1.0 RTW
2.0 Beta
URLhttp://aip.codeplex.com/
使用難易度
  • 低(純使用)
  • 中(撰寫自己的擴充功能)
使用此套件時可用的輔助工具AIP for ASP.NET 的說明檔(chm 格式),可由 AIP 的網站下載到。
基礎知識
  • 知曉何謂 CAPTCHA。
  • 使用 HTTP Handler 輸出圖片。
  • 設定 Web.config。

論壇或部落格的大敵:機器人軟體

有自己在經營部落格或是論壇的讀者應該會有這樣的經驗,偶爾會有一些廣告或垃圾留言在自己的部落格或留言板中出現,或是自己的論壇中莫名奇妙的被註冊一堆會員,而且那些會員都是有規則性的、無意義的會員帳戶,這些基本上都是像廣告公司或其他組織所開發的機器人軟體(robot-ware)的傑作。這些機器人軟體在各處自動貼上一些指定的訊息(大多數是廣告),或是到處去註冊會員帳戶,在早期並沒有針對這些軟體有所防範,因此經常會聽到一些像「垃圾留言灌爆某某網站」或是「某網站內充斥著廣告文」之類的消息,所以只要是有經營網站的人,無不想在這些容易被機器人攻擊的地方,加上一些門檻來保護。
其實機器人軟體的原理是很簡單的,它們被內植具有一定規則的 POST 字串(例如很熱門的表單欄位名稱)以及其資料值,在某些特定的時間,對某些網站(內建名單)發送 HTTP POST,大多數的網站並不會特別針對 HTTP POST(以 ASP.NET 來說,就是 Request.Form 屬性)的每個欄位做檢查,因此如果系統沒有特別設計一些措施的話,就會被機器人所攻陷,也就是留下一些垃圾資料,或是廣告訊息之類的文字。
只是長久下來,這些機器人在網站或資料庫內留下了大量無意義的垃圾資料,大家想必應該知道 GIGO(Garbage-In, Garbage-Out)這個詞彙吧,無意義的資料多半都只是垃圾而已,網站經營者會使用相當多的手段來防堵這些機器人,例如輸入驗證碼(Validation Code)、註冊確認信(Confirmation Letter)、密碼復原問題(Password Recovery Questions)等等措施,無非只是想確定一件事:『輸入這些資料的,真的是一個活生生的人類』。而現在最常在網站上看到的一個技術,就是 CAPTCHA。

CAPTCHA 技術

CAPTCHA 全名是 Completely Automated Public Test to tell Computers and Humans Apart(全自動區分計算機和人類的測試),為一種可以確保輸入者是人類的技術,最早是在 2002 年由卡內基梅隆大學的 Luis von Ahn、Manuel Blum、Nicholas J.Hopper 以及 IBM 的 John Langford 所提出。它的基本原理是由系統自動產生一組識別碼(通常是 4-8 個字),由大小寫字母以及數字組成,並且以圖片方式輸出,如此可以避免自動偵測的機器人透過文字(HTML 是文字格式)來破解識別碼,以確保輸入驗證碼的是人類。
不過隨著電腦速度加快,以及 OCR(光學字元辨識技術)的演進,在瀏覽器或在機器人中掛上小型 OCR 的技術也不再是難題,而 OCR 可以由圖片中辨認出驗證碼的字元,再轉交給機器人程式來傳送,如此圖形辨識碼等於形同虛設。因此 CAPTCHA 技術會將字元做適當的變化,例如歪斜字體、顏色處理、線條堆積以及字元互疊等特別的處理方式,讓 OCR 辨認成功的機率降到最低(當然人也要看得懂),所以經常會看到這樣的字體:

圖:CAPTCHA 驗證碼示例(來源:維基百科)

NOTE
更多的驗證碼示例,可以參考這個網站:http://www.cs.sfu.ca/~mori/research/gimpy/ez/

這樣的驗證碼方式雖然更強,但是一般開發人員上沒有受過影像處理的訓練的話,很難將它程式化,尤其是又要做到各種變形的特效,對一般的開發人員來說難度更高,因此 CAPTCHA 的發展單位卡內基梅隆大學另外開發了一個 reCAPTCHA 服務,供許多的網站套用,以免去開發 CAPTCHA 系統的負擔,不過似乎實務上較少人使用它,其原因除了它不是內建在系統中的服務,同時為了要存取它,還要多加幾次的網路來回(round-trip),效益上似乎無法平衡。因此也有不少軟體開發商開發具 CAPTCHA 能力的元件,免費的當然也有,就是本文要介紹的 AIP for ASP.NET。

Auto-Input Protection for ASP.NET

AIP for ASP.NET 是由 Dave Sexton 所開發,具備 CAPTCHA 能力的 ASP.NET 元件,可以用在許多需要驗證輸入者為人類的表單中,它包含了一個 AutoInputProtectionControl 控制項,用來顯示以及取得輸入的驗證字串,在伺服端可以只要使用一個指令就得知輸入的字串是正確與否:
[C#]
protected void cmdValidate_Click(object sender, EventArgs e) 
{ 
    if (this.AutoInputProtectionControl1.IsValid) 
        Response.Write("驗證已過。"); 
    else 
        Response.Write("驗證碼錯誤。"); 
}
這個控制項的畫面是:
雖然現在看到它的文字是英文,不過讀者不需要緊張,因為它是有屬性可以設定的,只要把文字改成中文即可:
變更文字以後再看一次,就可以看到中文的文字了:

使用方式

請先到 AIP for ASP.NET 的網站下載 2.0 Beta 的 MSI 安裝檔安裝後,可以在 %PROGRAM_FILES%\Dave Sexton\AIP\bin 中找到 DaveSexton.AutoInputProtection.dll 檔案,這個檔案包含了必要的控制項以及 HTTP Handler 等物件。

NOTE
本文使用 AIP for ASP.NET 2.0 Beta 來介紹,1.0 RTW 和 2.0 Beta 間有些許不同,可參考 AIP for ASP.NET 網站中的 Release Notes 的說明。

NOTE
AIP for ASP.NET 支援 Visual Studio 2008 以及 Visual Studio 2005,不過本文是使用 Visual Studio 2008 作主要開發環境。

首先,開啟 Visual Studio 2008,並新增(或開啟)ASP.NET Web 應用程式專案,待 Default.aspx 設計模式載入完成後,到工具箱新增 AutoInputProtectionControl。方法是在工具箱上按右鍵,選擇『選擇項目』,並瀏覽到前述的安裝目錄,選擇 DaveSexton.AutoInputProtection.dll 檔案:
按『開啟舊檔』,就可以看到 AutoInputProtectionControl 元件被加入清單中:
再按『確定』,工具箱上即會出現此控制項:
先不要急著將控制項拖放到頁面中,請先打開這個專案的 Web.config 檔,並且在 區段中加入下列指令:
[XML]
"GET"
 path="AIP.ashx" type="DaveSexton.Web.Controls.AutoInputProtectionRequestHandler, DaveSexton.AutoInputProtection"/>
如果執行的伺服器是 IIS 7.0 的話,還要到 區段的 中加入下列指令:
[XML]
"AIPHandler"
 verb="GET" path="AIP.ashx" type="DaveSexton.Web.Controls.AutoInputProtectionRequestHandler, DaveSexton.AutoInputProtection"/>
現在就可以回到網頁的設計模式去盡情使用這個控制項了。

進一步設定 CAPTCHA:干擾因素(Filters)

AIP for ASP.NET 預設的驗證碼模式只有針對文字部份做特殊處理,如果要再進一步的處理它的背景色,或是要撰寫自己的文字產生規則的話,就需要針對 AIP for ASP.NET 這個元件做一些設定。例如在許多網站上常見的驗證碼,可能除了文字以外,還會在背景色上加上一些不同的顏色,或者是如同雜訊般的燥點(noise dot),這些都可以干擾 OCR,降低它的辨識成功率。
而這些能力在 AIP for ASP.NET 中稱為 Filter,它內建兩種 Filter:
類型說明圖示範例
TranslucentBarsOverlayAutoInputProtectionFilterProvider在驗證碼圖片背景加上不同顏色與粗細的長條區塊。
CrosshatchAutoInputProtectionFilterProvider在驗證碼圖片背景中加上雜訊或是不規則線條。

若要在驗證碼中套用 Filter,首先,請在 Web.config 中的 區段中,加入這個設定,以加入 AIP for ASP.NET 設定的支援:
[XML]
"autoInputProtection"
             type="DaveSexton.Web.Controls.Configuration.AutoInputProtectionSection, DaveSexton.AutoInputProtection" />
接著,在 區段的下方,加入 AIP for ASP.NET 的設定區段:
[XML]
 
   
    "horizontal bars"
         type="DaveSexton.Web.Controls.TranslucentBarsOverlayAutoInputProtectionFilterProvider, DaveSexton.AutoInputProtection" 
         colors="Orange,Yellow,Fuchsia" /> 
    "cross hatch"         type="DaveSexton.Web.Controls.CrossHatchAutoInputProtectionFilterProvider, DaveSexton.AutoInputProtection" 
         colors="Red,Black" /> 
   
接著,重新建置專案並瀏覽有驗證碼控制項存在的網頁,可以看到如下的結果:
可以發現驗證碼被加上了背景色,包含長條區以及燥點等,若要設定使用不同的顏色,只要改變它的 colors 設定即可。
[XML]
"horizontal bars"
 type="..." colors="Orange,Yellow,Fuchsia" /> 
"cross hatch" type="..." colors="Red,Black" />
不論使用哪些顏色,在 AIP for ASP.NET 元件中,還是會隨機取用其他顏色,並且和目前已設定的顏色做混合,以產生色階不同的圖片背景。

NOTE
目前 AIP for ASP.NET 在顏色的設定上可以接受具名顏色(Known Colors)以及使用 CSS 的顏色格式(#RRGGBB),開發人員可以依照自己的喜好設定它。colors 屬性如果要套用多個顏色,請使用逗號來區隔。

進一步設定 CAPTCHA:提供者(Providers)

在前面的說明中,也許讀者有發現到,在 AIP 中的客制元件(custom component)是使用 Provider Pattern,因此只要開發人員想要自己發展自己的邏輯,只要開發自己的 Provider,再掛上系統中即可。在 AIP for ASP.NET 中,開發人員可以自訂三種 Provider,分別是文字(Text Provider)、圖像(Image Provider)以及干擾因素(Filter Provider)。
在預設的情況下,AIP for ASP.NET 使用的是預設的文字提供者以及預設的影像提供者:
[XML]
"random text"
 defaultImageProvider="resource"
   
    "random text"
 
         type="DaveSexton.Web.Controls.RandomCharactersAutoInputProtectionTextProvider, DaveSexton.AutoInputProtection" 
         colors="Red,Green,Blue,Brown" fonts="Times New Roman,Arial" 
         minimumFontSize="20" maximumFontSize="35" /> 
   
   
    "resource"
 
         type="DaveSexton.Web.Controls.ResourceAutoInputProtectionImageProvider, DaveSexton.AutoInputProtection" 
         minimumCharacterRotation="-15" maximumCharacterRotation="15" /> 
   
以預設的文字提供者來說,它可以支援設定使用的文字字型、最小與最大的字元大小,以及可用顏色等,而影像提供者則是會使用預設的背景圖(可以在安裝目錄中的 Source\DaveSexton.AutoInputProtection\Images 目錄中找到背景圖)設定字元的旋轉幅度,由 -15 到 +15 之間,以產生文字的歪斜效果。

NOTE
據筆者的實驗,若 textProvider 和 imageProvider 同時使用時,imageProvider 會優先被套用,接著才是 textProvider。而且二個 Provider 只會套用一種,因此讀者可以在這二種類型中取其一即可。這兩種 Provider 所產生的圖片,都可以和 filter 混合。

若想要開發自己的 Provider,則請依下列方式繼承必要的基底類別:
  • 文字提供者,請由 AutoInputProtectionTextProvider 繼承。
  • 影像提供者,請由 AutoInputProtectionImageProvider 繼承。
  • 干擾因素提供者,請由 AutoInputProtectionFilterProvider 繼承。

結語

AIP for ASP.NET 不但可以幫助開發人員在自己的網站中產生具有一定強度的驗證碼,同時它也能夠由開發人員去自行開發自己的提供者以擴充它的功能,筆者覺得它已經是一個成熟的工具,因此引介給讀者,讓讀者能夠輕鬆使用它來加強自己的網站的輸入驗證,不再受到機器人的干擾。