http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 11455|回复: 3

[其他] 怎么调用JS中的CryptoJS.HmacSHA256加密方法啊?好像没有集成到httphelper框架中

[复制链接]
发表于 2016-2-20 09:19:45 | 显示全部楼层 |阅读模式
function login2load(){
    $('#loginButton').attr("disabled",true);
    var dataCenter = new $.NUI_DataCenter();
    var login_username= $('#login_username').val();
    var login_password= $('#login_password').val();
//    if (login_password == defPwd) {
//        alert("当前密码为初始密码,请修改密码");
////        window.location = cpadGlobal.WEB_APP_NAME + "/changePwd.html";
//        return;
//    }
    $('#login_password').val("");   
    dataCenter.putParameter("userName",login_username);
    //dataCenter.putParameter("userPassword",login_password);
    dataCenter.putParameter("userPassword",CryptoJS.HmacSHA256(login_password, "123456").toString(CryptoJS.enc.Hex));
    var parm=JSON.stringify(dataCenter);
    $.ajax({
       type: "post",
       url: "http://"+window.location.host+cpadGlobal.WEB_APP_NAME+"/login",
       processData: false,
       data: parm,
       contentType:"application/x-www-form-urlencoded; charset=utf-8",
       error:function(dc, textStatus, errorThrown){
                  
                   alert(dc.responseJSON.header.message.detail);   
       },
       success:  function(dc){
                  
                   if (dc.header.code == 0) {
//                       alert(dc.header.message.detail);
                       document.getElementById("msg").innerHTML = dc.header.message.detail;
                       return ;
                   } else {
                       document.getElementById("msg").innerHTML = "";
                   }
                $.set_global("token",dc.body.parameters.AccessToken.token);
                $.set_global("user",dc.body.parameters.AccessToken.account);
                $.set_global("sysdate",dc.body.parameters.SYSDATE);
                $.set_global("AccInfo",dc.body.parameters.AccInfo);
               
                var saveConfig = {"option":dc.body.parameters.userCompAuthority.aar099, "flag":dc.body.parameters.userCompAuthority.aar098};
                $.set_global("saveConfig",saveConfig);
               
                var rootmenu= $.extend(new $.NUI_DataStore(), dc.body.dataStores.rootMenu);
                var submenu= $.extend(new $.NUI_DataStore(), dc.body.dataStores.subMenu);
                if(rootmenu.getRowCount()>0){
                    rootMenuStore=rootmenu.getRows();
                    basestore=submenu.getRows();
                    $.each(basestore,function(k,v){
                        v.id=v.ID;
                        v.label=v.LABEL;
                        v.rootId=v.ROOTID;
                        v.parentId=v.PARENTID;
                        v.location=v.LOCATION?cpadGlobal.WEB_APP_NAME+v.LOCATION:v.LOCATION;
                    
                    });
                    
                    $.set_global("basestore",basestore);
                    $.set_global("rootMenuStore",rootMenuStore);

                    (function initStatePathMapping(source){
                        var securityAjax = function(config){
                            var microTime = new Date().getTime(),
                                digest = function (url, method, params, data, microTime) {
                                    var content = method + ':' + url + ':' + data + ':' + microTime,
                                        digest = CryptoJS.HmacSHA256(content, $.get_global("token")).toString(CryptoJS.enc.Hex);
                                    
                                    return digest;
                                },
                                
                                headers = {};
                                
                                headers['X-USER'] = $.get_global("user");
                                headers['X-MICRO-TIME'] = microTime;
                                headers['X-HMAC-HASH'] = digest(config["url"], config["type"]||"get", null, config["data"]||"", microTime);
                                
                                config["headers"] = config["headers"] || {};
                                
                                angular.extend(config["headers"], headers);
                                
                                var result = $.ajax(config);
                                return result.responseText;
                            },
                            StatePathMapping = {},
                            extraPageJsonStr = securityAjax({url:cpadGlobal.WEB_APP_NAME+"/public/mainApp/privatePage.json", async:false});
                            extraPageJsonObj = angular.fromJson(extraPageJsonStr);
                        
                        angular.forEach(extraPageJsonObj, function(config){
                            config.location = cpadGlobal.WEB_APP_NAME + config.location;
                        });
                        basestore.push.apply(basestore, extraPageJsonObj);
                        
                        if(source){
                            for( var i=0,loopCounter=source.length; i<loopCounter; i++ ) {
                                var href = source[i]["location"];
                                href = href && href.substring(href.indexOf(cpadGlobal.WEB_APP_NAME,0)+cpadGlobal.WEB_APP_NAME.length+1, href.length);
                                
                                StatePathMapping[source[i]["id"]] = {};
                                StatePathMapping[source[i]["id"]]["templateUrl"] = href;
                            }
                           
                           
                            angular.module('NUI_MainFrameWork').config([ '$stateProvider', function($stateProvider) {
                                $stateProvider.state('myapp',{
                                    url   : '',
                                    views : StatePathMapping
                                });
                            } ]);
                        }
                    })(basestore);
                    if($('body').injector()){
                    
                    }else{
                        angular.bootstrap($('body'),["NUI_MainFrameWork"]);
                    }
                    
                    
                    createRootMenuList();
                    $("#layLogin").fadeOut("slow");
                    $("#layUpdatePwd").fadeOut("slow");
                    //initStatePathMapping(basestore);
//                    var rows=menu.getRows();
//                    $.each(rows,function(){
//                        
//                    });
                    
                    
                    $("#loginUsrInfo").text("当前用户:"+dc.body.parameters.AccInfo.usrname);
                    
                    if(saveConfig.option || saveConfig.flag)
                        alert("目前尚未开通保存功能权限,请联系省办开通。");
                }
                else {
                    alert("该用户授权菜单为空");
                }                                             
                $('#loginButton').removeAttr("disabled");
                }
    });
};




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-2-20 10:20:52 | 显示全部楼层
jquery的方法暂时无法执行。没有支持,后期研究成功了会更新上
 楼主| 发表于 2016-2-20 12:12:03 | 显示全部楼层
站长苏飞 发表于 2016-2-20 10:20
jquery的方法暂时无法执行。没有支持,后期研究成功了会更新上

苏老师,我已经研究出了一款能支持C#控制WEBKIT为内核的操作方法,只是需要用到V8引擎,我找到一个一open webki c#的东东,能下载,高度成功了,这是下载地址:http://www.softpedia.com/get/Pro ... enWebKitSharp.shtml
直接用它来支持运行jquery和jquery插件等方法,还不错!只是我水平有限,还有好多东东不懂,请苏老师抽空下载下来研究一下嘛!这个东东能支持C#控制webkit的所有浏览器内的元素,包括点击,提交AJAX,功能相当强大的!
发表于 2016-2-20 13:23:00 | 显示全部楼层
joyoes 发表于 2016-2-20 12:12
苏老师,我已经研究出了一款能支持C#控制WEBKIT为内核的操作方法,只是需要用到V8引擎,我找到一个一open ...

有空我 看看,最近忙的不可开交,呵呵。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-23 01:18

© 2014-2021

快速回复 返回顶部 返回列表