.net手机验证码短信接口哪个短信 接口好

ASP.NET验证码(3种)
&更新时间:日 16:27:14 & 投稿:lijiao
这篇文章主要对ASP.NET实现三种验证码的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助。
日常生活中我们在使用网站时都会遇到验证码,大家有没有想过为什么要使用验证码?
其实验证码的作用就是防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。今天就跟大家分享ASP.NET的三种验证码。
1.GSC_WebControlLibrary 这是在网上找到的一个控件,非常好用。但是效果不是特别好(见下图。
)虽然容易使用,所有的属性都可以像控件一样设置,但是可用性不太高。用户不能自定义,而且看起来这个验证码效果不太好。
2.用一个页面生成图片,另一个页面调用,验证码存入cookie,调用时取cookie对比验证.这个用户就可以按自己的喜好更改效果和验证码的长度了。
效果如图:
CheckCode.aspx代码如下:
using System.D
using System.C
using System.C
using System.W
using System.Web.S
using System.Web.UI;
using System.Web.UI.WebC
using System.Web.UI.WebControls.WebP
using System.Web.UI.HtmlC
using System.D
using System.Drawing.Drawing2D;
using System.Drawing.I
public partial class Tools_CheckCode : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
this.CreateCheckCodeImage(GenerateCheckCode());
private string GenerateCheckCode()
string checkCode = String.E
System.Random random = new Random();
for (int i = 0; i & 5; i++)
number = random.Next();
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
code = (char)('A' + (char)(number % 26));
checkCode += code.ToString();
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
return checkC
private void CreateCheckCodeImage(string checkCode)
if (checkCode == null || checkCode.Trim() == String.Empty)
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
//生成随机生成器
Random random = new Random();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
for (int i = 0; i & 25; i++)
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.GreenYellow), x1, y1, x2, y2);
Font font = new System.Drawing.Font("Verdana", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点
for (int i = 0; i & 80; i++)
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
//画图片的边框线
g.DrawRectangle(new Pen(Color.Red), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
然后在需要使用的页面引用:
UseCheckCode.aspx
&img src="Tools/CheckCode.aspx" alt="验证码" style="width: 60 height: 24px" /&
3.用web handler生成图片。这个其实和前面的意思大致差不多,调用方法也基本和2一样,不同的是,它的验证码是存入Session的。供学习参考。
效果图如下:
ValidateImageHandler.ashx
%@ WebHandler Language="C#" Class="ValidateImageHandler" %&
using System.W
using System.Web.SessionS
using System.D
using System.Drawing.I
using System.T
/// &summary&
/// ValidateImageHandler 生成网站验证码功能
/// &/summary&
public class ValidateImageHandler : IHttpHandler, IRequiresSessionState
int intLength = 5;
string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中
public ValidateImageHandler()
/// &summary&
/// 生成验证图片核心代码
/// &/summary&
/// &param name="hc"&&/param&
public void ProcessRequest(HttpContext hc)
//设置输出流图片格式
hc.Response.ContentType = "image/gif";
Bitmap b = new Bitmap(200, 60);
Graphics g = Graphics.FromImage(b);
g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60);
Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
Random r = new Random();
//合法随机显示字符列表
string strLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuilder s = new StringBuilder();
//将随机生成的字符串绘制到图片上
for (int i = 0; i & intL i++)
s.Append(strLetters.Substring(r.Next(0, strLetters.Length - 1), 1));
g.DrawString(s[s.Length - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
//生成干扰线条
Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
for (int i = 0; i & 10; i++)
g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
b.Save(hc.Response.OutputStream, ImageFormat.Gif);
hc.Session[strIdentify] = s.ToString(); //先保存在Session中,验证与用户输入是否一致
hc.Response.End();
/// &summary&
/// 表示此类实例是否可以被多个请求共用(重用可以提高性能)
/// &/summary&
public bool IsReusable
以上就是ASP.NET3种验证码,各有各的优缺点,希望大家可以熟练实现不同验证码的功能。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具电信开放平台发布短信验证码API
发表于 14:49|
作者Melinda
摘要:随着互电子商务的发展,电商间的竞争由Web站点转到了App应用市场,这时交易操作的安全性显得尤为重要,而短信验证码技术的普及正为其提供了保障,它能防止某一个用户用特定程序暴力破解方式进行不断的订单交易尝试。
随着移动互联网电子商务市场的发展,电商之间的竞争由Web站点转到了App应用市场,这时交易操作的安全性显得尤为重要,而短信验证码技术的普及为其提供了保障。短信验证码,作为验证码校验技术的一种方式,有效防止了某一个特定用户用特定程序暴力破解方式进行不断的订单交易尝试,短信验证码交互模式的存在有效增强了移动互联网应用商店订单交易的安全性。中国电信天翼开放平台推出完全免费的短信验证码API能力接口,该短信验证码能力构建在运营商推送服务通道之上,能兼容、覆盖国内全网,开发者可以通过访问了解更多的API调用方法。免费提供短信验证码能力的开放,改善了电商类Web站点以及App应用的账单支付体验,进一步强化了在线交易的安全性,开发者只需通过在相关代码中嵌入已经封装好的标准代码即可轻松实现短信验证码的校验功能,借助天翼开放平台的API接口,开发者就能够在天翼开放平台享受到从认证注册、应用创建、快速过审、云主机托管、云计算存储、电信专享App渠道发布等一站式服务。该API能力接口吸引了平台上众多应用开发者的脚步,下图中的应用已使用短信验证码功能:
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章&>&.net实现短信验证功能
.net实现短信验证功能
上传大小:126KB
在.net平台下实现注册或其他需要短信验证的功能。。
综合评分:4
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有7条
还好,能使用,
不错,可以使用
还好,能使用,
hunanlongge
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
.net实现短信验证功能
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
.net实现短信验证功能我们在做网站尤其是用户注册时难免会用到使用手机号注册,给用户发送验证码用于效验身份。因为要用到给手机发送短信,所以需求运营商提供接口(当然这个需要一定的费用^-^)。
下面是实现方案:
一、web.config中需要增加短信发送接口:
key="MeiSheng.Passport" value="******"/&
key="MeiSheng.Password" value="******"/&
key="MeiSheng.NewPassport" value="******"/&
key="MeiSheng.NewPassword" value="******"/&
key="MeiSheng.NewUrl" value="******"/&
key="MeiSheng.pingzheng" value="******"/&
二、html页面代码如下:
&div class="valGroup"&
&div class="valGroup-item-1 inline-block"&
&span&*&/span& 手机号码:&/div&
&div class="valGroup-item-2 formControls inline-block"&
&asp:TextBox ID="txtTel" runat="server" ajaxurl="/tools/validreg.ashx?regType=validPhone"
CssClass="input-text-1" datatype="m" nullmsg="请输入手机号码" sucmsg=" " placeholder="请输入手机号码"&&/asp:TextBox&
&div class="inline-block telmsg"&
&div class="valGroup"&
&div class="valGroup-item-1 inline-block"&
&span&*&/span& 短信验证码:&/div&
&div class="valGroup-item-2 formControls inline-block"&
&asp:TextBox ID="txtTelCode" runat="server" CssClass="input-text-1" datatype="n6" nullmsg="请输入手机收到的短信验证码!" errormsg="请输入手机收到的短信验证码!" sucmsg="&font color='green'&恭喜您,验证成功!&/font&"
ajaxurl="" Width="200px"&&/asp:TextBox&
&div style="display: inline- vertical-align: margin-top: -2 height: 38" id="divSend"&
&a class="telcode" id="getCode" href="#"&获取短信验证码&/a&
&div class="inline-block"&
三、js代码:
var iTime = 119;
var eTime = 0;
function RemainTime() {
var ahtml = "";
if (iTime & 0) {
ahtml = '提交成功(' + iTime + '秒)';
Account = setTimeout("RemainTime()", 1000);
iTime = iTime - 1;
eTime = 1;
if (!document.getElementById("cover0"))
$("#divSend").append('&div id="cover0" class="input-sm"
style="width:100%; height:42background-color:#FFF;opacity:.40;filter: alpha(opacity=60);position: margin-top:-40 z-index:99999;"&&/div&');
clearTimeout(Account);
ahtml = '获取短信验证码';
iTime = 119;
eTime = 0;
$("#cover0").remove();
$(".telcode").html(ahtml);
$(function () {
var valid_rule = $("#register").Validform({
datatype: {
"n6": /^\d{6}$/
tiptype: 2
$("#txtTel").blur(function () {
$("#txtTelCode").attr("ajaxurl", "/tools/validreg.ashx?regType=validCode&ctype=1&phone=" + $('#txtTel').val());
$('#getCode').click(function () {
$('#txtTel').focus();
$('#txtTel').blur();
if (!$("#txtTel").val()) {
return false;
setTimeout('SendTelMsg()', 300);
function SendTelMsg() {
if ($(".telmsg span").html() == "&font color=\"green\"&该手机号可用&/font&") {
if (eTime & 0) { return false; }
$(".telcode").html('已提交');
eTime = 1;
method: 'post',
timeout: 30,
async: false,
data: { mobile: $("#txtTel").val(), mb: "MB-(模板编号)", ctype: 1 },
dataTpye: 'json',
url: "/tools/validreg.ashx?regType=sendCode",
success: function (data) {
var par = eval('(' + data + ')');
if ($.trim(par.status) === "y") {
RemainTime();
eTime = 0;
alert(par.info);
error: function (data) {
eTime = 0;
alert('未知错误');
$(".telcode").html('获取短信验证码');
return false;
return false;
四、后台代码:
#region //发送短信验证码
public void SendTelCode(HttpContext context)
string tel = context.Request.Form["mobile"]
string mb = context.Request.Form["mb"]
int type = Convert.ToInt32(context.Request.Form["ctype"])
if (recm.CountMessage(tel, 24, 2) & 5) //一天之内最多只能发送5条
if (recm.CountTwoMessage(tel, 120, 2) & 0) //2分钟之内只能发送1次
context.Response.Write("{ \"info\":\"发送过于频繁,请稍后再试!\", \"status\":\"n\" }")
context.Response.End()
string randnum = randcode()
RegCodeInfo info = new RegCodeInfo()
info.RCRandNum = randnum
info.RCTel = tel
info.RCcount = 1
info.RCIP = FormatGetIP()
info.RCType = type
if (recm.Insert(info))
if (Labbase.Common.SendMsg.sendTemplateSms(tel, mb, "@1@=" + randnum + ",@2@=30").Equals("恭喜您发送成功!"))
context.Response.Write("{ \"info\":\"&font color='green'&验证码发送成功,请注意查收!&/font&\", \"status\":\"y\" }")
context.Response.End()
context.Response.Write("{ \"info\":\"验证码发送失败,请稍后再试!\", \"status\":\"n\" }")
context.Response.End()
context.Response.Write("{ \"info\":\"验证码发送失败,请稍后再试!\", \"status\":\"n\" }")
context.Response.End()
context.Response.Write("{ \"info\":\"发送超出限制,请联系管理员!\", \"status\":\"n\" }")
context.Response.End()
#endregion
#region //短信验证码验证
public void TelCodeValid(HttpContext context)
string phone = context.Request.QueryString["phone"]
string code = Labbase.Common.DTRequest.GetString("param")
int type2 = Convert.ToInt32(context.Request.QueryString["ctype"])
if (recm.CountYouXiao(phone, code, 30, type2) & 0) //验证用户输入的手机验证码是否在有效期之内
context.Response.Write("{ \"info\":\"&font color='green'&验证成功!&/font&\", \"status\":\"y\" }")
context.Response.End()
context.Response.Write("{ \"info\":\"注册失败,请确认验证码!\", \"status\":\"n\" }")
context.Response.End()
#endregion
#region//生成随机验证码
public string randcode()
char[] chars = "".ToCharArray()
System.Random random = new Random()
string code = string.Empty
for (int i = 0
return code
#endregion
#region//设置本地IP地址
public static string FormatGetIP()
return "58.56.17.206"
#endregion
五、用到的类:
public class SendMsg
=====发送普通短信=====
发送普通短信
手机号码, 多个号码以英文逗号隔开,最多支持100个号码
返回发送状态,状态说明见下载包中的接口文档
public static String SendTextSms(string mobile, string content)
string account = ConfigHelper.GetConfig("MeiSheng.NewPassport");
string password = ConfigHelper.GetConfig("MeiSheng.NewPassword");
string HTTP_URL = ConfigHelper.GetConfig("MeiSheng.NewUrl");
string veryCode = ConfigHelper.GetConfig("MeiSheng.pingzheng");
StringBuilder param = new StringBuilder();
param.Append("&username=").Append(account);
param.Append("&password=").Append(password);
param.Append("&veryCode=").Append(veryCode);
param.Append("&mobile=").Append(mobile);
param.Append("&content=").Append(content);
param.Append("&msgtype=").Append("1");
param.Append("&code=").Append("utf-8");
String address = String.Format("{0}sendMsg{1}", HTTP_URL, param.ToString());
String result = DTRequest.GetPagePost(address);
string message = "";
XmlDocument xd = new XmlDocument();
xd.LoadXml(result);
XmlNode node = xd.SelectSingleNode("sms/mt/status");
string html = node.InnerT
if (html == "100")
message = "发送失败";
else if (html == "101")
message = "用户账号不存在或密码错误";
else if (html == "102")
message = "账号已禁用";
else if (html == "103")
message = "参数不正确";
else if (html == "105")
message = "短信内容超过300字、或为空、或内容编码格式不正确";
else if (html == "106")
message = "手机号码超过100个或合法的手机号码为空,每次最多提交100个";
else if (html == "108")
message = "余额不足";
else if (html == "109")
message = "指定访问ip地址错误";
else if (html == "114")
message = "模板短信序号不存在";
else if (html == "115")
message = "短信签名标签序号不存在";
else if (html.StartsWith("110#"))
message = "短信内容存在系统保留关键词" + html.Substring(4) + ",如有多个词,使用逗号分隔:110#(李老师,成人)";
else if (html == "116")
message = "认证码不正确";
else if (html == "117")
message = "未开通此接入方式";
message = "恭喜您发送成功!";
#endregion
#region =====发送模版短信(短信模版的创建参考客户端操作手册)=====
发送模版短信(短信模版的创建参考客户端操作手册)
模版:@1@会员,动态验证码@2@(五分钟内有效)。请注意保密,勿将验证码告知他人。
参数值:@1@=member,@2@=4293
最终短信内容:【短信签名】member会员,动态验证码4293(五分钟内有效)。请注意保密,勿将验证码告知他人。
接收人手机号
各参数值,以英文逗号隔开,如:@1@=member,@2@=4293
返回发送状态
public static String sendTemplateSms(string mobile, string tempId, string content)
string account = ConfigHelper.GetConfig("MeiSheng.NewPassport");
string password = ConfigHelper.GetConfig("MeiSheng.NewPassword");
string HTTP_URL = ConfigHelper.GetConfig("MeiSheng.NewUrl");
string veryCode = ConfigHelper.GetConfig("MeiSheng.pingzheng");
StringBuilder param = new StringBuilder();
param.Append("&username=").Append(account);
param.Append("&password=").Append(password);
param.Append("&veryCode=").Append(veryCode);
param.Append("&mobile=").Append(mobile);
param.Append("&content=").Append(content);
param.Append("&msgtype=").Append("2");
param.Append("&tempid=").Append(tempId);
param.Append("&code=").Append("utf-8");
String address = String.Format("{0}sendMsg{1}", HTTP_URL, param.ToString());
String result = DTRequest.GetPagePost(address);
string message = "";
XmlDocument xd = new XmlDocument();
xd.LoadXml(result);
XmlNode node = xd.SelectSingleNode("sms/mt/status");
string html = node.InnerT
if (html == "100")
message = "发送失败";
else if (html == "101")
message = "用户账号不存在或密码错误";
else if (html == "102")
message = "账号已禁用";
else if (html == "103")
message = "参数不正确";
else if (html == "105")
message = "短信内容超过300字、或为空、或内容编码格式不正确";
else if (html == "106")
message = "手机号码超过100个或合法的手机号码为空,每次最多提交100个";
else if (html == "108")
message = "余额不足";
else if (html == "109")
message = "指定访问ip地址错误";
else if (html == "114")
message = "模板短信序号不存在";
else if (html == "115")
message = "短信签名标签序号不存在";
else if (html.StartsWith("110#"))
message = "短信内容存在系统保留关键词" + html.Substring(4) + ",如有多个词,使用逗号分隔:110#(李老师,成人)";
else if (html == "116")
message = "认证码不正确";
else if (html == "117")
message = "未开通此接入方式";
message = "恭喜您发送成功!";
#endregion
=====获取短信状态报告 =====
public static String QueryReport(string account, string password, string veryCode, string HTTP_URL)
StringBuilder param = new StringBuilder();
param.Append("&username=").Append(account);
param.Append("&password=").Append(password);
param.Append("&veryCode=").Append(veryCode);
String address = String.Format("{0}queryReport{1}", HTTP_URL, param.ToString());
String result = DTRequest.GetPagePost(address);
#endregion
=====获取上行短信,只能获取当前的短信状态,不能根据msgid获取状态,具体介绍请查看接口文档 =====
获取上行短信
,只能获取当前的短信状态,不能根据msgid获取状态,具体介绍请查看接口文档
返回当日截止到当前的所有短信状态
public static String QueryMo(string account, string password, string veryCode, string HTTP_URL)
StringBuilder param = new StringBuilder();
param.Append("&username=").Append(account);
param.Append("&password=").Append(password);
param.Append("&veryCode=").Append(veryCode);
String address = String.Format("{0}queryMo{1}", HTTP_URL, param.ToString());
String result = DTRequest.GetPagePost(address);
#endregion
#region =====余额查询=====
返回当前余额
public static String GetAmount(string account, string password, string veryCode, string HTTP_URL)
StringBuilder param = new StringBuilder();
param.Append("&username=").Append(account);
param.Append("&password=").Append(password);
param.Append("&veryCode=").Append(veryCode);
String address = String.Format("{0}getAmount{1}", HTTP_URL, param.ToString());
String result = DTRequest.GetPagePost(address);
string message = "";
XmlDocument xd = new XmlDocument();
xd.LoadXml(result);
XmlNode node = xd.SelectSingleNode("sms/mt/status");
string html = node.InnerT
if (html == "100")
message = "查询余额失败";
else if (html == "101")
message = "用户账号不存在或密码错误";
else if (html == "102")
message = "账号已禁用";
else if (html == "103")
message = "参数不正确";
else if (html == "105")
message = "认证码错误";
else if (html == "117")
message = "未开通此接入方式";
XmlNode node1 = xd.SelectSingleNode("sms/mt/account");
message = Utils.StrToInt(node1.InnerText, 0) * 10 + "条";
#endregion
获取配置文件的值。
public static string GetConfig(string key)
key = System.Web.Configuration.WebConfigurationManager.AppSettings[key];
return string.IsNullOrEmpty(key) ? string.Empty :
POST请求短信平台会用到
public static string GetPagePost(string url)
HttpWebRequest httpR
HttpWebResponse httpR
StringBuilder strBuff = new StringBuilder();
int byteRead = 0;
int byteCount = 256;
char[] cbuffer = new char[byteCount];
Uri httpURL = new Uri(url);
httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
httpReq.Method = "POST";
httpResp = (HttpWebResponse)httpReq.GetResponse();
Stream respStream = httpResp.GetResponseStream();
StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
byteRead = respStreamReader.Read(cbuffer, 0, byteCount);
while (byteRead != 0)
string strResp = new string(cbuffer, 0, byteRead);
strBuff.Append(strResp);
byteRead = respStreamReader.Read(cbuffer, 0, byteCount);
catch (Exception e)
throw new Exception(e.Message);
return strBuff.ToString();
ASP.NET MVC+Bootstrap 实现短信验证
短信验证大家都已经很熟悉了,基本上每天都在接触手机短信的验证码,比如某宝,某东购物,网站注册,网上银行等等,都要验证我们的手机号码真实性。这样做有什么好处呢。 以前咱们在做网站的时候,为了提高用户注册...
为 Asp.net 网站新增发送手机短信功能
本文旨在帮助那些为网站发送手机短信正在寻求解决方案还未最终找到解决方案的朋友提供参考。
适合人群 须满足一下条件之一,如果以下3个条件您都不满足,为节约您宝贵的时间,请终止阅读本篇文章。
C# .NET发送短信验证码(前端+后台)
账号注册发送验证码
手机号码:
/*----------------------------------...
.net 短信验证码
protected void Button1_Click(object sender, EventArgs e)
Random rd = new Random();
C# .net实现发送手机短信功能
.net实现发送手机短信功能其实很简单,只需要调用短信服务商的接口即可。代码如下:
string url = &{0}?act=send&username={1}&passwd={2}&destn...
没有更多推荐了,

我要回帖

更多关于 虚拟手机号验证码平台 的文章

 

随机推荐