• RTX登录其他系统


    前台:

    <html>
    <head>
        <title>签名验证</title>
        <meta http-equiv="Content-Language" content="zh-cn">
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
        <meta name="ProgId" content="FrontPage.Editor.Document">
        <script id="clientEventHandlersVBS" type="text/vbscript">
        <!--
        '从服务端获取SessionKey
        dim strAccount 
        dim strSignature 
        Sub btnAuthSign_onclick   '服务器端代码,用于验证签名
            on error resume next
            Set RTXCRoot = RTXAX.GetObject("KernalRoot")  ' 获取KernalRoot对象
            Set rtcData = RTXCRoot.Sign '获取签名,并把它赋给rtcData  
     
            strAccount = RTXCRoot.Account '获取用户帐号
            strSignature = rtcData.GetString("Sign") '获取rtcData对象的Sign 的内容,也就是用户签名
    
            form1.user.value= strAccount
            form1.sign.value = strSignature
            If Err.Number <> 0 Then
                MsgBox "程序运行错误 " & Err.Description
                Err.Clear
            End If
        end sub
        -->
        </script>
    </head>
    <body>
        <form name="form1" method="get" action="Handler.ashx">
        <table>
            <tr>
                <td>
                    <!--用户名-->
                </td>
                <td>
                    <input type="hidden" name="user" />
                </td>
            </tr>
            <tr>
                <td>
               <!-- 签&nbsp;&nbsp;名-->
                </td>
                <td>
                <input type="hidden" name="sign" />
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                    <input name="btnAuthSign" type="submit" id="btnAuthSign" style=" 100px; height: 21px"
                        value="登录OA" size="18">
                </td>
            </tr>
        </table>
        </form>
        <object id="RTXAX" data="data:application/x-oleobject;base64,fajuXg4WLUqEJ7bDM/7aTQADAAAaAAAAGgAAAA=="
            classid="clsid:5EEEA87D-160E-4A2D-8427-B6C333FEDA4D" viewastext>
        </object>
    </body>
    </html>

    后台Handler.ashx(一般处理程序):

    添加引用 System.Data.OracleClient和Interop.RTXSAPILib去下载

    public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string strName = HttpContext.Current.Request.QueryString["user"];
            string strSign = HttpContext.Current.Request.QueryString["sign"];
    
            //OA验证
            string selectSql = "select * from usr where PHONEHOME=:lName";
            DataSet DSRst = ExecuteScalar(ConnString(), CommandType.Text, selectSql, strName);
            DataTable table = DSRst.Tables[0];
    
            RTXSAPILib.IRTXSAPIRootObj RootObj = new RTXSAPILib.RTXSAPIRootObjClass();
            RTXSAPILib.IRTXSAPIUserAuthObj2 AuthObj2 = (RTXSAPILib.IRTXSAPIUserAuthObj2)RootObj.UserAuthObj;
    
            bool bOK = AuthObj2.SignatureAuth(strName, strSign);
            if (bOK == true && table != null && table.Rows.Count > 0)
            {
                context.Response.Redirect("http://192.168.30.157:8078/MainPages/Login.htm?username=" + strName + "uId=" + table.Rows[0]["ID"]);  //验证通过
            }
            else
            {
                context.Response.Redirect("http://192.168.30.157:8078/MainPages/Login.htm");
            }
        }
        ////提供的接口,Url参数格式:..Login.htm?username=admin&password=c4ca4238a0b923820dcc509a6f75849b
        //    $().ready(function () {
        //        if (request("username") == "") {
        //            return;
        //        }
        //        else {
        //            var uName = escape(request("username"));
        //            $.ajax({
        //                type: "POST",
        //                url: "../WebSiteRequestManager.ashx",
        //                data: { method: "BlnLogin", ValidateUser: uName, selectxt: $("#selxt").val() },
        //                success: function (msg) {
        //                    alert(msg);
        //                    if (msg == "Main" || msg == null) {
        //                        top.location = "../MainPages/WindowMain.htm";
        //                    }
        //                }
        //            });
        //        }
        //    });
    
        public static string ConnString()
        {
            return System.Web.Configuration.WebConfigurationManager.AppSettings["OrclConnectionstring"];
        }
        public static DataSet ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, string uname)
        {
            OracleConnection orclCon = new OracleConnection(connectionString);//添加引用 System.Data.OracleClient
            OracleCommand Cmd = new OracleCommand(cmdText, orclCon);
            Cmd.Parameters.AddWithValue(":lName", uname);
            orclCon.Open();
            DataSet ds = new DataSet();
            OracleDataAdapter da = new OracleDataAdapter(Cmd);
            da.Fill(ds);
            return ds;
        }
  • 相关阅读:
    02-05 flutter provider的使用
    02-04 flutter 构造函数总结
    02-03 flutter异步
    02-02dart语法
    02-01dart语法
    01-01 iOS内存对齐、内存对齐算法
    01-02 iOS kvo、kvc
    01-03 category 原理概述
    多线程编程 (2) -NSOperation
    IOS基本控件属性
  • 原文地址:https://www.cnblogs.com/914556495wxkj/p/3656797.html
Copyright © 2020-2023  润新知