c#注冊集成調用手機短信驗證碼平臺接口api異構系統(tǒng)解決方案
來源:原創(chuàng) 時間:2018-03-01 瀏覽:0 次隨著中國一躍成為世界上最大的移動通訊市場,手機短信以它通訊費用低廉,雙向傳輸,通訊質量可靠,速度快等顯著優(yōu)點受到了越來越多人的青睞。不僅是個人,企業(yè)引入短信這種通訊方式也是非常必要的企業(yè)利用短信通信的優(yōu)勢,可實現企業(yè)內部的辦公通知、客戶關懷、機房監(jiān)控、遠程調度等業(yè)務如果企業(yè)同時還有業(yè)務系統(tǒng),短信可作為業(yè)務系統(tǒng)的延伸完成許多重要的作用,可以實現比較復雜的互動行為。比如與ERP系統(tǒng)連接,可以使業(yè)務人員或客戶隨時隨地查詢所要的業(yè)務信息;與SCM系統(tǒng)連接可以將整個供應鏈中的反饋信息及時錄入系統(tǒng),也可以使客戶查詢供應鏈運作狀態(tài)因此,如何快速開發(fā)出集成有完備的短信息發(fā)送、記錄、接受功能的應用程序,以及讓已有的各功能復雜、不同實現方案的異構業(yè)務系統(tǒng)能方便的集成短信息發(fā)送功能成為一個待解決的問題。本文針對短信息發(fā)送的特點,利用NET平臺提出了一種簡潔高效的短信息發(fā)送解決方案并詳細描述了該方案的實現。實賤表明,該方案具有實現簡潔、二次開發(fā)方便、安全高效等特點
目前企業(yè)實現自主短信息發(fā)送有兩種方案。一是與中國移動、中國聯通的短信息網關相連接該方法適用于發(fā)送短信息量大,短信息面向公眾的企業(yè),成本較高;二是通過計算機串口、USB口或PCI接口與諸如短信收發(fā)機的GSM終端相連接實現短信息的發(fā)送。該方法特別適用于企業(yè)內部業(yè)務系統(tǒng)短信息發(fā)送木文采用第二種方案,用一臺與計算機串口相連的短信收發(fā)機完成短信息收發(fā)的任務般企業(yè)里的業(yè)務系統(tǒng)結構各異,很多程序員熟悉的平臺和開發(fā)工具也不盡相同。為此,根據短信息發(fā)送的特點,本文提出-種不同于 HTTP POST和 HTTP GET協(xié)議的URL解析方案。即通過
在程序里調用特為便于對發(fā)送的短信息進行記錄、管理以及對短信息的限制使用,用 SQL Server2000建立了個數據庫。該數據庫定義了如下主要數據表:用戶信息表、用戶地址本表、用戶文件夾表、待發(fā)短信息褻、已發(fā)送短信息表、發(fā)送失敗短信息表等系統(tǒng)采用 ASPNET技術來實現,編程語言采用C#,設計目標是為各種復雜異構的系統(tǒng)提供統(tǒng)的URL調用發(fā)送短信息接口,同時提供了注冊、定制、修改用戶信息以及管理短信息的界面。應用程序調用公共調用接口模塊,傳入為該應用程序注冊的用戶名、密碼、接受手機號碼以及待發(fā)送短信息,公共調用接口模塊驗證用戶名、密碼等信息后,將這些信息送入數據庫的待發(fā)短信息表中,短信息發(fā)送模塊將待發(fā)短信息表中的短信息發(fā)送出去。管理員和用戶可通過用戶、短信息管理模塊修改用戶密碼、短信息發(fā)送限制條件以及查詢所發(fā)短信息ASP.NET與 Microsoft Net Framework及 Microsoft Internet信息服務(IS)協(xié)同工作以提供Web應用程序安全性圍。
用戶在注冊模塊里輸入用戶名,郵箱等基本信息。按提交鍵以后,應用程序自動產生一個隨機密碼,并使用 System. Web Mail. Maiimessage類發(fā)送封 email將注冊信息和隨機密碼發(fā)送到用戶注冊郵箱,同時發(fā)送一份到系統(tǒng)管理員郵箱。待系統(tǒng)管理員回復確認后,此用戶賬號即開始有效用戶的注冊信息存儲在數據庫的用戶信息表中。為避免密碼的明文存儲,使用net提供的類對密碼執(zhí)行散列運算。同時為增加免受潛在攻擊的安全性,對密碼散列執(zhí)行Salt運算。Salt就是在已執(zhí)行散列運算的密碼中插入的一個隨機數字。這一策略有助于阻止?jié)撛诘墓粽呃妙A先計算的字典攻擊(字典攻擊是攻擊者使用密鑰的所有可能組合來破解密碼的攻擊)。當使用Salt值使散列運算進一步隨機化后,攻擊者將需要為每個Salt值創(chuàng)建一個字典,這將使攻擊變得非常復雜且成本極Salt值隨散列存儲在且未經過加密。所存儲的Salt值可以在隨后用于密碼驗證。本系統(tǒng)用 System Security. Cryptography. RNG Cryptoserviceprovider命名空間創(chuàng)建一個4字節(jié)Salt值每個客廣的密碼中都將插入一個隨機的Saat值
身份驗證是從用戶處獲取標識憑據(如用戶名和密碼)并通過某些授權機構驗證那些憑據的過如果這些憑據有效,則提交這些憑據的實體被視為已通過身份驗證。在身份得到驗證后,授權進程將確定該身份是否可以訪問給定資源ASPNET通過身份驗證提供程序(即包含驗證請求方憑據所需代碼的代碼模塊)來實現身份驗證。 ASPNET支持 Windows、Foms、 Passport三種身份驗證和不驗證。本文對用戶登錄系統(tǒng)提供Forms身份驗證,即在應用程序根目錄中的 Web. config中將 authentication mode設為 forms,同時抬
定標簽中的namname表示指定要用于身份驗證的 HTTP Cookie下,name的值是, ASPXAUTH。采用此種方式驗證用戶后,以此用戶的信息建立一個 Forms Authenticationticxet類型的身份驗證票,再加密序列化為一個字符串,最后將這個字符串寫到客戶端的name指定名字的Cookie中。一旦這個 Cookie寫到客戶端后,此用戶再次訪問這個web應用時將會連同 Cookie一起發(fā)送到服務端,服務端將囚此知道此用戶是已經驗證過的公共調用接口由于短信息發(fā)送具有傳輸參數較少的特點,即只有身份驗證需要的用戶名、密碼和發(fā)送短信息需要用到的手機號碼、消息內容等參數。據此,本文提出了一種有別于復雜的 web service結構的方法
例如在地址欄輸入如下地址:http://www.ohfrw.com為短信息發(fā)送web應用程序所在URL頁面利用 Request.URL. Tostring取得URL信息,其中 Request.URL為URI類型。URICuniformidentifier,統(tǒng)一資源標識符),是表示“任意惟標識符”的一個普通術語。URLuniform resource locator,統(tǒng)-資源定位符),是UR的一個普通類型。下來對URL信息進行有效性檢查,若通過則將URL傳遞的用戶名 username、密碼 passwd接受的手機號碼 mobiles、待發(fā)送的短信息msg提取出來。在用戶信息表中,查詢 username所在的密碼散列值和salt值,將從URL提取的 passwd與salt散列運算并與密碼散列值比較,如果驗證通過則進行下一步處理。否則返回接下來從已發(fā)送短信息表中查詢該用戶今天所發(fā)的短信息條數,若未超過設定的域值則進行下步處理,否則返回最后將此用戶信息、接受手機號碼、待發(fā)送短信存入待發(fā)送短信息表中,留待發(fā)送模塊處理。
發(fā)送模塊
短信收發(fā)機提供了標準的AT指令用于控制短信息的接受和發(fā)送。九十年代初,AT命令僅被用于 Modem操作,由于沒有控制移動電話文本消息的先例,因此開發(fā)了一種 SMS Block Mode的協(xié)議,通過終端設備(TE)或電腦來完全控制SMS。幾年后,主要的移動電話生產廠商諾基亞、愛立信摩托羅拉和HP共同為GSM研制了一整套AT命令,其中包含對SMS的控制。AT命令在此基礎上演化并被加入GSM0705標準,以及之后的GSM0707標準對SMS的控制共有三種實現途徑:最初的 Block mode;基于AT命令的 Text Mode;基于AT命令的 PDU Mode。PDU方式將消息正文經過十六進制編碼后進行發(fā)送。目前PDU是最常用的發(fā)送格式基于微軟提供的 MSCOMM串口控件,利用vuaC+開發(fā)一個名為 Thep Smscontrol的控件,將AT指令封裝其中,方便調試和開發(fā)。NET開發(fā)平臺提供了 Visual c#開發(fā)工具,可以非常方便的集成各種控件和使用 ADO. NET操作數據庫。本文的發(fā)送模塊即是基于visual c#完成,該模塊在開始階段初始化短信收發(fā)機的各種參數然后使用System.Windows.Forms. Timer定義一個定時器,每隔一個設定射時間閆隔,如10秒鐘,輪洵一次數據庫的待發(fā)短信息表,若有新的記錄,則調用 Thep Smscontrol控件提供的函數將短信息發(fā)往指定的手機號碼,同時將該發(fā)送記錄從待發(fā)短信息表中刪除,并保存至已發(fā)送信息表中,若信息發(fā)送失敗,則將此記錄保存至發(fā)送失敗短信息表中,其中對數據庫的增加和刪除記錄采取原子操作
短宿息和用戶管理模塊戶設計一個頁面方便用戶和管理員查誨發(fā)送的短信息記錄,同時提供用戶管理頁面,用于用管理和密碼修改等
應用實例
基于本文提出的解決方案,利用URL公共調用接口,我們分別在 windows和Linu系統(tǒng)上用 VisualC++開發(fā)工具和gc工具開發(fā)了幾套應用系統(tǒng),并在其中方便的集成了短信息發(fā)送功能以網絡監(jiān)控程序集成短信息發(fā)送功能為例,在 register注冊頁面上注冊一個用戶名 netmonitor,經批準后得到一個密碼asd321。則調用如下URL即可完成一條監(jiān)控短信息的送
http://www.ohfrw.comI網絡服務一切正?!肰C在 windows下調用URL公共調用接口有兩種方案:1,利用 windows的API,使用Intermetopen和 Internetopenurl兩個函數即可完成對URL的調用即完成短信息發(fā)送;2,利用Cintemetsession類完成對URL的調用在 Lnux下使用“ lynx url” shell 1命令即可完成對URL的調用
結論
本文提出的基于NET開發(fā)的短信息解決方案,利用一臺短信息收發(fā)機即可實現企業(yè)內各種異構系統(tǒng)的完備的短信息發(fā)送功能,并且具有實現方案簡潔、二次開發(fā)簡單、運行高效、穩(wěn)定安全的特點,具有很高的實用價值。