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

首頁 > 學院 > 開發設計 > 正文

webform登錄操作中正則表達式運用

2019-11-17 03:00:31
字體:
來源:轉載
供稿:網友

webform登錄操作中正則表達式運用

關于正則表達式的運用,估計很多人都會覺得這很麻煩。確實很麻煩,太多表達式我也記不住,很多都是臨時需要用的時候再去查,有點小學生讀小說的架勢,不認識的字再去翻字典。

正則表達式嚴格來說對于程序的功能實現作用不大,他的作用在于程序的安全性和程序保護,比如登錄的時候,如果不寫正則表達式,很容易產生數據注入的情況。程序的安全性得不到保障,當然用其他的判定方法也能起到同樣的作用,不過相對來說,寫個正則表達式是最簡單的了。

這里說的是webform登錄的正則表達式,那我們先建一個webform項目,然后添加一個web窗體編輯

//注:這兒最好在textbox下面添加一個label來對輸入文字進行說明,以增加用戶的便利性。

然后我們創建一個button-click事件,

 1  PRotected void Button1_Click(object sender, EventArgs e) 2         { 3             string UserName = TextBox1.Text; 4             string UserPWD = TextBox2.Text;/**************************************************/ 5             ABCbank bll = new ABCbank(); 6             bool result = bll.login(UserName ,UserPWD );/*****//注:這兒是一個BLL中的判斷調用,頁面跳轉中判斷用戶名和密碼是否匹配用的***/  7 if (result == true)8 {  9 Server.Transfer("webform2.aspx"); 10  } 11 else 12  { 13 Response.Write("<scr

此時,我們對上一頁面兩個textbox輸出的兩個值創建過程來返回,代碼如下

   public string UserName        {            get            {                return TextBox1.Text;            }        }        public string UserPWD        {            get            {                return TextBox2.Text;            }        }    }

這時候我們創建一個webform2窗體,在webform2中放兩個label,在webform2的Page_Load下我們添加如下代碼

 protected void Page_Load(object sender, EventArgs e)        {            WebForm1 wf1;            wf1 = (WebForm1)Context.Handler;            Label1.Text = wf1.UserName;            Label2.Text = wf1.UserPWD;        }

在web.config中添加一個數據源,就可以進行跳轉了。從程序上來說,這里功能實現是沒有問題的。但是,是否一定要正確的用戶和密碼才能登入呢,當然不是,在這里就不多講進入方式,只講一下簡單的SQL注入吧。SQL注入的意思就是通過用戶名密碼的輸入,將SQL語句編入其中以進行數據注入,那么這樣,這兒就需要進行一個程序保護問題。

我們首先考慮一下我們的用戶名,是否可以制定一定的規范,就如同身份證號碼,只能是15位或者18位的數字一樣。假如,我們設定我們的用戶名只能由英文字母和數字組成,不包含空格及標點符號,那么我們應該怎么寫這個保護呢,我們首先來看看定義英文和數字的正則表達式:"^[A-Za-z0-9]+$",再看看定義密碼的正則表達式,只能由字母,數字和下劃線組成的表達式"^[A-Za-z0-9]+$",那我們就來對用戶名和密碼的輸入寫入正則表達式看看

 string UserName = TextBox1.Text;            string pattern = "^[A-Za-z0-9]+$";            Regex r = new Regex(pattern);            Match m = r.Match(UserName );            if (m.Success)            {                Response.Write(m.Value);            }            else            {                Response.Write("用戶名只能由字母和數字組成");            }                      string UserPWD = TextBox2.Text;            string pattan1 = "^[A-Za-z0-9]+$";            Regex r1 = new Regex(pattan1);            Match m1 = r1.Match(UserPWD );            if (m1.Success)            {                Response.Write(m1.Value);            }            else            {                Response.Write("密碼只能由數字和字母組成");            }

在這里我們加入了正則表達式的判斷,如果輸入的字符不符合我們的判定,那么就會提示輸入錯誤,這樣就能有效的避免一些數據注入的情況。當然,同樣的方法也適用于注冊,或者其他一些數據輸入的地方。需要說明的是,或許有人會因為我把判斷寫在前端來詬病這種方法會影響程序運行的速度,也有人喜歡將判定寫在后臺,不過我個人覺得還是前端好一些,有問題早解決,等數據傳入后臺的這個過程中會不會發生其他的什么數據滲透情況呢?如果能在第一時間就把非法輸入給踢出局,未嘗不能這樣。判斷和數據獨立,也能保證數據的安全性。最后,初學者,有什么說的不對的,請懷著看戲的心情閱讀此文,謝謝@!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乳源| 盖州市| 扬中市| 福泉市| 德钦县| 抚顺县| 奈曼旗| 榆中县| 元谋县| 福鼎市| 成安县| 平罗县| 巴林左旗| 抚顺县| 宁德市| 鹤岗市| 建瓯市| 什邡市| 宣威市| 伽师县| 揭阳市| 万年县| 山东省| 乾安县| 邳州市| 沁源县| 当雄县| 滨海县| 天等县| 开原市| 文山县| 丰原市| 金华市| 江口县| 枣强县| 灵台县| 内江市| 阜城县| 商丘市| 娱乐| 呼伦贝尔市|