Wiwiz Auth API集成示例代码(ASP.Net)

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="WiwizAuthApiSample_aspx.cs" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    用户名: <asp:TextBox ID="username" runat="server"></asp:TextBox>
    <br />
    密码: <asp:TextBox ID="pswd" runat="server" TextMode="Password"></asp:TextBox>
    <br />
    <asp:Button ID="login" runat="server" onclick="Login_Click" Text="登录" />
    <br />
    <asp:Label ID="LabelMsg" runat="server" Text=""></asp:Label>
    <br />
 
 
    </form>
</body>
</html>

using System;
using System.IO;
using System.Text;
using System.Web;
using System.Net;
 
public partial class _Default : System.Web.UI.Page 
{
    string userkey = "246DD22C084BB40E";	// 替换为你的User Key
 
    protected void Page_Load(object sender, EventArgs e)
    {
 
        //****************************************************
        // 取得接收到的传入参数 
        //****************************************************
 
        Session.Add("tokencode", Request.Params["tokencode"]);	    // 接收到的传入参数"tokencode"
        Session.Add("srvurl", Request.Params["srvurl"]);	    	// 接收到的传入参数"srvurl" 
    }
 
    protected void Login_Click(object sender, EventArgs e)
    {
		//****************************************************
		// 第1步. 根据您的具体需要或业务,进行用户登录验证处理
		//****************************************************
 
        bool loginSuccess = false;
 
        // 根据系统自身的业务需求进行自己的账户验证/登录验证等处理
	    //      ......
	    //
 
	    loginSuccess = true; // 这里假设用户登录已验证
 
	    if(loginSuccess == false) {
 
            LabelMsg.Text = "登录失败!";    // 如果登录失败则报错		    
 
	    } else {
 
		    //****************************************************
		    // 第2步. 调用Wiwiz Auth API,进行预认证
		    // 重要: 请在服务器端的程序中进行此处理(例如,ASP、C#、JSP/Servet、PHP...),
		    //      而不要在直接客户端代码中进行此处理(例如,HTML/Javascript)
		    //****************************************************
 
		    // 参数 "action" : 必须!
		    // 设置为"1"将使用户认证成功
		    // 设置为"0"将使用户认证失败
		    string action = "1";
 
            // 参数 "tokencode": 必须!
            // 设置与同名传入参数相同的值
            string tokencode = (string) Session["tokencode"];
 
            // 参数 "srvurl": 必须!
            // 设置与同名传入参数相同的值
            string srvurl = (string) Session["srvurl"];
 
		    // 参数 "endtime" : 可选
		    // 格式: yyyy-mm-dd hh:MM:ss  例如: 2014-05-31 21:39:00
		    // 设置此参数将使用户的Internet连接在指定时间关闭
		    // 注意: 对此参数的值必须进行url编码  
		    string endtime = Server.UrlEncode("2014-05-31 21:39:00");
 
		    // 参数 "postauth" : 可选
		    // 例如: http://www.YourDomain.com
		    // 设置此参数将设置用户在通过认证后显示的页面地址
		    string postauth = "http://www.wiwiz.com";
 
		    string parameters =
				    "wiwiz_auth_api=1&ver=1.0"+ // 参数 "wiwiz_auth_api" 与 "ver". 固定值
				    "&tokencode="+ tokencode +	// 参数 "tokencode". 设置方法参考上面的说明
				    "&userkey="+ userkey +		// 参数 "userkey". 设置方法参考上面的说明
				    "&action="+ action +		// 参数 "action". 设置方法参考上面的说明
				    "&endtime="+ endtime +		// 参数 "endtime". 设置方法参考上面的说明
				    "&postauth="+ postauth; 	// 参数 "postauth". 设置方法参考上面的说明
 
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(srvurl);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
 
            StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
            streamOut.Write(parameters);
            streamOut.Close();
 
            StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
            string verifycode = streamIn.ReadToEnd();            // 获取verifycode,即Wiwiz服务端返回的验证结果
            streamIn.Close();
 
            string userstring = "username:" + username.Text;    // 设置自定义追踪信息(可选),本例中设为用户名
 
		    if(verifycode.StartsWith("ERR")) {
			    // 如果报错,则显示错误代码
                LabelMsg.Text = "Error: " + verifycode;
 
		    } else {
			    // 如没有报错则进行第3步。
 
			    //****************************************************
			    // 第3步. 调用Wiwiz Auth API,完成认证
			    //****************************************************	
                string redirectUrl = srvurl +		// 使用传入参数"srvurl"的值作为跳转地址的前缀
                        "?wiwiz_auth_api_login=1" +	// 参数 "wiwiz_auth_api_login",固定值
                        "&tokencode=" + tokencode +	// 参数 "tokencode",设置与同名传入参数相同的值
                        "&verifycode=" + verifycode +	// 参数 "verifycode",Wiwiz服务端返回的验证结果
                        "&userstring=" + userstring;    // 参数 "userstring"(可选),用户设置的自定义追踪信息
 
			    Response.Redirect(redirectUrl);	// 最后,进行跳转
		    }
	    }
    }
}

Comments are closed.