您的位置:首页 >  新闻中心 > 行业动态
  行业动态
 

c#注册集成调用手机短信验证码平台接口api异构系统解决方案

来源:原创    时间:2018-03-01    浏览:0 次

    随着中国一跃成为世界上最大的移动通讯市场,手机短信以它通讯费用低廉,双向传输,通讯质量可靠,速度快等显著优点受到了越来越多人的青睐。不仅是个人,企业引入短信这种通讯方式也是非常必要的企业利用短信通信的优势,可实现企业内部的办公通知、客户关怀、机房监控、远程调度等业务如果企业同时还有业务系统,短信可作为业务系统的延伸完成许多重要的作用,可以实现比较复杂的互动行为。比如与ERP系统连接,可以使业务人员或客户随时随地查询所要的业务信息;与SCM系统连接可以将整个供应链中的反馈信息及时录入系统,也可以使客户查询供应链运作状态因此,如何快速开发出集成有完备的短信息发送、记录、接受功能的应用程序,以及让已有的各功能复杂、不同实现方案的异构业务系统能方便的集成短信息发送功能成为一个待解决的问题。本文针对短信息发送的特点,利用NET平台提出了一种简洁高效的短信息发送解决方案并详细描述了该方案的实现。实贱表明,该方案具有实现简洁、二次开发方便、安全高效等特点

blob.png

目前企业实现自主短信息发送有两种方案。一是与中国移动、中国联通的短信息网关相连接该方法适用于发送短信息量大,短信息面向公众的企业,成本较高;二是通过计算机串口、USB口或PCI接口与诸如短信收发机的GSM终端相连接实现短信息的发送。该方法特别适用于企业内部业务系统短信息发送木文采用第二种方案,用一台与计算机串口相连的短信收发机完成短信息收发的任务般企业里的业务系统结构各异,很多程序员熟悉的平台和开发工具也不尽相同。为此,根据短信息发送的特点,本文提出-种不同于 HTTP POST和 HTTP GET协议的URL解析方案。即通过

    在程序里调用特为便于对发送的短信息进行记录、管理以及对短信息的限制使用,用 SQL Server2000建立了个数据库。该数据库定义了如下主要数据表:用户信息表、用户地址本表、用户文件夹表、待发短信息亵、已发送短信息表、发送失败短信息表等系统采用 ASPNET技术来实现,编程语言采用C#,设计目标是为各种复杂异构的系统提供统的URL调用发送短信息接口,同时提供了注册、定制、修改用户信息以及管理短信息的界面。应用程序调用公共调用接口模块,传入为该应用程序注册的用户名、密码、接受手机号码以及待发送短信息,公共调用接口模块验证用户名、密码等信息后,将这些信息送入数据库的待发短信息表中,短信息发送模块将待发短信息表中的短信息发送出去。管理员和用户可通过用户、短信息管理模块修改用户密码、短信息发送限制条件以及查询所发短信息ASP.NET与 Microsoft Net Framework及 Microsoft Internet信息服务(IS)协同工作以提供Web应用程序安全性围。

    用户在注册模块里输入用户名,邮箱等基本信息。按提交键以后,应用程序自动产生一个随机密码,并使用 System. Web Mail. Maiimessage类发送封 email将注册信息和随机密码发送到用户注册邮箱,同时发送一份到系统管理员邮箱。待系统管理员回复确认后,此用户账号即开始有效用户的注册信息存储在数据库的用户信息表中。为避免密码的明文存储,使用net提供的类对密码执行散列运算。同时为增加免受潜在攻击的安全性,对密码散列执行Salt运算。Salt就是在已执行散列运算的密码中插入的一个随机数字。这一策略有助于阻止潜在的攻击者利用预先计算的字典攻击(字典攻击是攻击者使用密钥的所有可能组合来破解密码的攻击)。当使用Salt值使散列运算进一步随机化后,攻击者将需要为每个Salt值创建一个字典,这将使攻击变得非常复杂且成本极Salt值随散列存储在且未经过加密。所存储的Salt值可以在随后用于密码验证。本系统用 System Security. Cryptography. RNG Cryptoserviceprovider命名空间创建一个4字节Salt值每个客广的密码中都将插入一个随机的Saat值

    身份验证是从用户处获取标识凭据(如用户名和密码)并通过某些授权机构验证那些凭据的过如果这些凭据有效,则提交这些凭据的实体被视为已通过身份验证。在身份得到验证后,授权进程将确定该身份是否可以访问给定资源ASPNET通过身份验证提供程序(即包含验证请求方凭据所需代码的代码模块)来实现身份验证。 ASPNET支持 Windows、Foms、 Passport三种身份验证和不验证。本文对用户登录系统提供Forms身份验证,即在应用程序根目录中的 Web. config中将 authentication mode设为 forms,同时抬

定标签中的namname表示指定要用于身份验证的 HTTP Cookie下,name的值是, ASPXAUTH。采用此种方式验证用户后,以此用户的信息建立一个 Forms Authenticationticxet类型的身份验证票,再加密序列化为一个字符串,最后将这个字符串写到客户端的name指定名字的Cookie中。一旦这个 Cookie写到客户端后,此用户再次访问这个web应用时将会连同 Cookie一起发送到服务端,服务端将囚此知道此用户是已经验证过的公共调用接口由于短信息发送具有传输参数较少的特点,即只有身份验证需要的用户名、密码和发送短信息需要用到的手机号码、消息内容等参数。据此,本文提出了一种有别于复杂的 web service结构的方法

    例如在地址栏输入如下地址:https://www.e253.com为短信息发送web应用程序所在URL页面利用 Request.URL. Tostring取得URL信息,其中 Request.URL为URI类型。URICuniformidentifier,统一资源标识符),是表示“任意惟标识符”的一个普通术语。URLuniform resource locator,统-资源定位符),是UR的一个普通类型。下来对URL信息进行有效性检查,若通过则将URL传递的用户名 username、密码 passwd接受的手机号码 mobiles、待发送的短信息msg提取出来。在用户信息表中,查询 username所在的密码散列值和salt值,将从URL提取的 passwd与salt散列运算并与密码散列值比较,如果验证通过则进行下一步处理。否则返回接下来从已发送短信息表中查询该用户今天所发的短信息条数,若未超过设定的域值则进行下步处理,否则返回最后将此用户信息、接受手机号码、待发送短信存入待发送短信息表中,留待发送模块处理。

发送模块

    短信收发机提供了标准的AT指令用于控制短信息的接受和发送。九十年代初,AT命令仅被用于 Modem操作,由于没有控制移动电话文本消息的先例,因此开发了一种 SMS Block Mode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制。AT命令在此基础上演化并被加入GSM0705标准,以及之后的GSM0707标准对SMS的控制共有三种实现途径:最初的 Block mode;基于AT命令的 Text Mode;基于AT命令的 PDU Mode。PDU方式将消息正文经过十六进制编码后进行发送。目前PDU是最常用的发送格式基于微软提供的 MSCOMM串口控件,利用vuaC+开发一个名为 Thep Smscontrol的控件,将AT指令封装其中,方便调试和开发。NET开发平台提供了 Visual c#开发工具,可以非常方便的集成各种控件和使用 ADO. NET操作数据库。本文的发送模块即是基于visual c#完成,该模块在开始阶段初始化短信收发机的各种参数然后使用System.Windows.Forms. Timer定义一个定时器,每隔一个设定射时间闫隔,如10秒钟,轮洵一次数据库的待发短信息表,若有新的记录,则调用 Thep Smscontrol控件提供的函数将短信息发往指定的手机号码,同时将该发送记录从待发短信息表中删除,并保存至已发送信息表中,若信息发送失败,则将此记录保存至发送失败短信息表中,其中对数据库的增加和删除记录采取原子操作

短宿息和用户管理模块户设计一个页面方便用户和管理员查诲发送的短信息记录,同时提供用户管理页面,用于用管理和密码修改等

应用实例

    基于本文提出的解决方案,利用URL公共调用接口,我们分别在 windows和Linu系统上用 VisualC++开发工具和gc工具开发了几套应用系统,并在其中方便的集成了短信息发送功能以网络监控程序集成短信息发送功能为例,在 register注册页面上注册一个用户名 netmonitor,经批准后得到一个密码asd321。则调用如下URL即可完成一条监控短信息的送

https://www.e253.comI网络服务一切正常↓利用VC在 windows下调用URL公共调用接口有两种方案:1,利用 windows的API,使用Intermetopen和 Internetopenurl两个函数即可完成对URL的调用即完成短信息发送;2,利用Cintemetsession类完成对URL的调用在 Lnux下使用“ lynx url” shell 1命令即可完成对URL的调用

结论

    本文提出的基于NET开发的短信息解决方案,利用一台短信息收发机即可实现企业内各种异构系统的完备的短信息发送功能,并且具有实现方案简洁、二次开发简单、运行高效、稳定安全的特点,具有很高的实用价值。