PC京东登录页分析 curl
curl https://passport.jd.com/new/login.aspx

https://passport.jd.com/new/misc/js/login2016.js?v=201702221137
/**
* sdk - login2015.js
*
*/
var LoginConstant = {
HTTP_SCHEME: "http:",
HTTPS_SCHEME: "https:",
REMOTE_COUNTRY_CODE: "//misc.360buyimg.com/user/passport/1.0.0/js/login.countrycode-1130.js",
LOCAL_COUNTRY_CODE: "user/passport-2015/js/login.countrycode.js"
}; var Util = {
Cookie: {
set: function (name, value, expire) {
var exp = new Date();
exp.setTime(exp.getTime() + expire * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + encodeURIComponent(value, "UTF-8") + ";expires=" + exp.toGMTString() + ";domain=passport.jd.com;path=/";
},
get: function (key) {
var cookies = document.cookie ? document.cookie.split('; ') : [];
for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = parts.shift();
var cookie = parts.join('=');
if (key && key === name) {
return cookie;
}
}
},
setALCookie: function () {
if ($("input[name='chkRememberMe']").prop("checked")) {
var Days = 3 * 30;
this.set("alpin", $("#loginname").val(), Days);
} else {
var v = this.get("alpin");
if (v) {
this.set("alpin", "", -100);
}
}
}
},
Header: {
getProtocol: function(){
var parentScheme = '';
try{
parentScheme = parent.location.protocol;
}catch(e){
} if(!parentScheme){
var referer = document.referrer;
if(referer.indexOf(LoginConstant.HTTPS_SCHEME) == 0){
parentScheme = LoginConstant.HTTPS_SCHEME;
}else{
parentScheme = LoginConstant.HTTP_SCHEME;
}
}
return parentScheme;
}
}
}; (function(){
/**
* 加密密码
* @param pwd
*/
function getEntryptPwd(pwd){
var pubKey = $('#pubKey').val();
if(!pwd || !pubKey || !SysConfig.encryptInfo){
return pwd;
}
var encrypt = new JSEncrypt();
encrypt.setPublicKey(pubKey);
return encrypt.encrypt(pwd);
} /**
* 初始化国家代码弹层请求
*
* @param obj
*/
function initCountryCode(obj) {
if (obj.countryTips) {
var resURL = LoginConstant.REMOTE_COUNTRY_CODE;
if (obj.localRes) {
resURL = LoginConstant.LOCAL_COUNTRY_CODE;
}
seajs.use(resURL, function (CountryCodeLayer) {
CountryCodeLayer.init();
});
}
} //显示验证码
function showAuthCode(){
if($("#o-authcode").css("display")!="none"){
return;
}
var loginUrl = "../uc/showAuthCode";
var loginName=$("#loginname").val();
$.ajax({
type: "POST",
url: loginUrl + "?r=" + Math.random()+"&version=2015",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
loginName:loginName
},
dataType:"text",
success: function (result) {
if (result) {
var obj = eval(result);
if (obj.verifycode) {
$("#o-authcode").show();
$("#JD_Verification1").click();
} else {
$("#o-authcode").hide();
}
}
}
});
} function rememberMeCheck(){
if(!window.SysConfig.rememberMeShowEnable){
return;
}
var loginName=$("#loginname").val();
if(!loginName){
return;
}
$.ajax({
type: "POST",
url: "../uc/rememberMeCheck?r=" + Math.random()+"&version=2015",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
loginName:loginName
},
dataType:"text",
success: function (result) {
var data = eval(result);
if (data.caluEnable){
return;
}
if (data.checked) {
if($('.msg-error').text() != ""){
$('.msg-error').show();
$('.msg-warn').hide();
}else{
if($('.msg-warn').text() != ""){ }else{
$('.msg-warn').html("<b></b>公共场所不建议自动登录,以防账号丢失");
}
$('.msg-warn').show();
}
$('#autoLogin').prop("checked",true);
}else{
$('.msg-warn').hide();
$('#autoLogin').prop("checked",false);
}
}
});
}
//登陆操作
function loginSubmit(callback) {
$('#loginsubmit').text('正在登录...');
if(window.location.href.indexOf("/popupLogin2013")!=-1){
frameLoginSubmit(callback);
return;
}
var loginUrl = "/uc/loginService";
var uuid = $("#uuid").val();
var chkRememberMe = "";
if ($('#autoLogin').attr('checked')) {
chkRememberMe = "on";
} $.ajax({
url: loginUrl + "?uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random()+"&version=2015",
type: "POST",
dataType: "text",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
uuid:$('#uuid').val(),
eid:$('#eid').val(),
fp:$('#sessionId').val(),
_t:$('#token').val(),
loginType:$('#loginType').val(),
loginname:$('#loginname').val(),
nloginpwd:getEntryptPwd($('#nloginpwd').val()),
chkRememberMe:chkRememberMe,
authcode:$('#authcode').val(),
pubKey:$('#pubKey').val(),
sa_token:$('#sa_token').val(),
seqSid:window._jdtdmap_sessionId
},
error: function () {
showMesInfo("网络超时,请稍后再试","error");
},
success: function (result) {
if (result) {
var obj = eval(result);
if (obj.success) {
Util.Cookie.setALCookie();
var isIE = !-[1,];
if (isIE) {
var link = document.createElement("a");
link.href = obj.success;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
} else {
window.location = obj.success;
}
return;
} if (obj.transfer) {
window.location = obj.transfer + window.location.search;
return;
}
if (obj.venture) {
window.location = "//safe.jd.com/dangerousVerify/index.action?username=" + obj.venture + "&ReturnUrl=" + encodeURI(obj.ventureRet) + "&p=" +obj.p+ "&t=" + new Date().getTime();
return;
}
if (obj.resetpwd) {
window.location = "//safe.jd.com/resetPwd/reset.action?username=" + obj.resetpwd;
return;
}
if (obj.rescue) {
window.location = obj.rescue;
return;
} if(obj._t){
$("#token").val(obj._t);
} if (obj.verifycode || obj.authcode1 || obj.authcode2 || obj.emptyAuthcode) {
$("#o-authcode").show();
}
$("#JD_Verification1").click();
if (obj.authcode2) {
callback(obj.authcode2,"error",["#authcode"]);
}
if (obj.username) {
initCountryCode(obj);
callback(obj.username,"error",["#loginname"]);
}
if (obj.pwd) {
initCountryCode(obj);
callback(obj.pwd,"error",["#nloginpwd"]);
clearPwd();
}
if (obj.emptyAuthcode) {
callback(obj.emptyAuthcode,"error",["#authcode"]);
}
}
var input=$('.item-error').eq(0).find('input');
var t=input.val();
input.val("").focus().val(t);
$("#loginsubmit").html("登 录");
}
});
} function frameLoginSubmit(callback){
var uuid = $("#uuid").val();
var protocol = Util.Header.getProtocol();
var chkRememberMe = "";
if ($('#autoLogin').attr('checked')) {
chkRememberMe = "on";
} $.ajax({
type: "POST",
dataType: "text",
url: "../uc/loginService?nr=1&uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random() + "&version=2015",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
uuid:$('#uuid').val(),
eid:$('#eid').val(),
fp:$('#sessionId').val(),
_t:$('#token').val(),
loginType:$('#loginType').val(),
loginname:$('#loginname').val(),
nloginpwd:getEntryptPwd($('#nloginpwd').val()),
chkRememberMe:chkRememberMe,
authcode:$('#authcode').val(),
pubKey:$('#pubKey').val(),
sa_token:$('#sa_token').val(),
seqSid:window._jdtdmap_sessionId
},
error: function () {
showMesInfo("网络超时,请稍后再试","error");
},
success: function (result) {
if (result) {
var obj = eval(result);
if (obj.success || obj.transfer) {
Util.Cookie.setALCookie();
var relayUrl = protocol + '//passport.jd.com/relay/loginRelay.htm';
try{
docRef = document.referrer;
var regExp = /([\w-]+)\.(jd\.hk|jd360\.hk|yiyaojd\.com|baitiao\.com)/;
var match = docRef.match(regExp);
if(match != null && match.length>=3){
var ua = navigator.userAgent;
var isIE = (ua.indexOf('MSIE') >= 0 || ua.indexOf("Trident") >= 0);
var hkShortDomainEnable = window.popupConfig.hkShortDomainEnable;
if(isIE && match[2] == "jd.hk" && hkShortDomainEnable){
relayUrl = protocol + "//" + match[0] + "/relay/loginRelay.htm";
}else{
relayUrl = protocol + "//sso." + match[2] + "/popup/redirect";
}
}
}catch(e){
} if (obj.notnr) {
window.location.href=relayUrl;
return;
} try {
$.ajax({
type: "GET",
url: obj.success,
dataType: "jsonp",
timeout: 1000,
success: function (result) {
window.location.href=relayUrl;
return;
}
});
} catch (e) {
window.location.href=relayUrl;
return;
}
}
if (obj.venture) {
var parentRef="";
try{
parentRef = document.referrer;
}catch(e){
}
window.parent.location = protocol + "//safe.jd.com/dangerousVerify/index.action?username=" + obj.venture + "&ReturnUrl=" + encodeURI(parentRef) + "&p=" +obj.p+ "&t=" + new Date().getTime();
return;
}
if (obj.resetpwd) {
window.parent.location = protocol + "//safe.jd.com/resetPwd/reset.action?username=" + obj.resetpwd;
return;
}
if (obj.rescue) {
window.parent.location = obj.rescue;
return;
}
if(obj._t){
$("#token").val(obj._t);
} if (obj.verifycode || obj.authcode1 || obj.authcode2 || obj.emptyAuthcode) {
$("#o-authcode").show();
}
$("#JD_Verification1").click();
if (obj.authcode2) {
callback(obj.authcode2,"error",["#authcode"]);
}
if (obj.username) {
initCountryCode(obj);
callback(obj.username,"error",["#loginname"]);
}
if (obj.pwd) {
initCountryCode(obj);
callback(obj.pwd,"error",["#nloginpwd"]);
clearPwd();
}
if (obj.emptyAuthcode) {
callback(obj.emptyAuthcode,"error",["#authcode"]);
}
}
var input=$('.item-error').eq(0).find('input');
var t=input.val();
input.val("").focus().val(t);
$("#loginsubmit").html("登 录");
}
});
} function showMesInfo(msg, type) {
$('.form>.msg-wrap').empty();
if (type == 'warn') {
var info = '<div class="msg-warn"><b></b>' + msg + '</div>';
$('.form>.msg-wrap').append(info);
}
if (type == 'error') {
var info = '<div class="msg-error"><b></b>' + msg + '</div>';
$('.form>.msg-wrap').append(info);
}
} /**
* 清除密码
*/
function clearPwd(){
$("#nloginpwd").val("");
$('#nloginpwd').siblings('.clear-btn').hide();
} function assemblyForm(){ }
/**
* 鼠标离开用户名
*/
$('#loginname').blur(function(){
rememberMeCheck();
});
window.loginSubmit=loginSubmit;
window.assemblyForm=assemblyForm;
window.showAuthCode=showAuthCode;
})();
CODE <!DOCTYPE html>
<html>
<head>
<meta charset="GBK"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<title>京东-欢迎登录</title>
<link rel="icon" href="//www.jd.com/favicon.ico"/>
<link type="text/css" rel="stylesheet"
href="//misc.360buyimg.com/user/passport/1.0.0/??/widget/base/base.css,widget/common-2016-1124/common-2016-1124.css,/widget/login-form-2016-1124/login-form-2016-1124.css,/widget/login-banner/login-banner.css,/widget/safe-step/safe-step.css,widget/foreign-number-layer-1130/foreign-number-layer-1130.css"
source="widget"/>
<script type="text/javascript" src="//misc.360buyimg.com/jdf/lib/jquery-1.6.4.js"></script>
<script type="text/javascript">
$(function () {
window.SysConfig = {
encryptInfo: true,
rememberMeShowEnable: false
};
});
</script>
</head>
<body>
<!-- SDK 登录 -->
<div class="w">
<div id="logo">
<a href="//www.jd.com/" clstag="pageclick|keycount|20150112ABD|45">
<img src="//misc.360buyimg.com/lib/img/e/logo-201305-b.png" alt="京东" width="170" height="60">
</a>
<b></b>
</div>
<a href="//surveys.jd.com/index.php?r=survey/index/sid/568245/lang/zh-Hans" target="_blank" class="q-link"><b></b>登录页面,调查问卷</a>
</div>
<div id="content">
<div class="login-wrap">
<div class="w">
<div class="login-form">
<div class="login-tab login-tab-l">
<a href="javascript:void(0)" clstag="pageclick|keycount|201607144|1"> 扫码登录</a>
</div>
<div class="login-tab login-tab-r">
<a href="javascript:void(0)" clstag="pageclick|keycount|201607144|2">账户登录</a>
</div>
<div class="login-box">
<div class="mt tab-h">
</div>
<div class="msg-wrap">
<div class="msg-error hide"><b></b></div>
</div>
<div class="mc">
<div class="form">
<form id="formlogin" method="post" onsubmit="return false;">
<input type="hidden" id="sa_token" name="sa_token" value="992-大写字母、数字"/>
<input type="hidden" id="uuid" name="uuid"
value="6af11588-4230-4897-9b26-321cb28e709d"/>
<input type="hidden" name="eid" id="eid" value="" class="hide"/>
<input type="hidden" name="fp" id="sessionId" value="" class="hide"/>
<input type="hidden" name="_t" id="token" value="_ntYpkKe" class="hide"/>
<input type="hidden" name="loginType" id="loginType" value="c" class="hide"/>
<input type="hidden" name="pubKey" id="pubKey" value="216-大写字母、数字、+、/" class="hide"/>
<input type="hidden" name="QCBQuufxss" value="TTLcR"/> <div class="item item-fore1">
<label for="loginname" class="login-label name-label"></label>
<input id="loginname" type="text" class="itxt" name="loginname" tabindex="1"
autocomplete="off"
placeholder="邮箱/用户名/已验证手机"/>
<span class="clear-btn"></span>
</div> <div id="entry" class="item item-fore2">
<label class="login-label pwd-label" for="nloginpwd"></label>
<input type="password" id="nloginpwd" name="nloginpwd" class="itxt itxt-error"
tabindex="2" autocomplete="off" placeholder="密码"/>
<span class="clear-btn"></span>
<span class="capslock"><b></b>大小写锁定已打开</span>
</div> <div id="o-authcode"
class="item item-vcode item-fore3 hide ">
<input id="authcode" type="text" class="itxt itxt02" name="authcode" tabindex="3">
<img id="JD_Verification1" class="verify-code"
src2="//authcode.jd.com/verify/image?a=1&acid=7af11544-4550-4507-9b63-524cb28e508d&uid=7af11544-4550-4507-9b63-524cb28e508d"
onclick="this.src= document.location.protocol +'//authcode.jd.com/verify/image?a=1&acid=7af11544-4550-4507-9b63-524cb28e508d&uid=7af11544-4550-4507-9b63-524cb28e508d&yys='+new Date().getTime();$('#authcode').val('');"/>
<a href="javascript:void(0)" onclick="$('#JD_Verification1').click();">看不清换一张</a>
</div> <div class="item item-fore4">
<div class="safe">
<span>
</span>
<span class="forget-pw-safe">
<a href="/uc/links?tag=safe" class="" target="_blank"
clstag="pageclick|keycount|201607144|3">忘记密码</a>
</span>
</div>
</div> <div class="item item-fore5">
<div class="login-btn">
<a href="javascript:;" class="btn-img btn-entry" id="loginsubmit" tabindex="6"
clstag="pageclick|keycount|201607144|3">登 录</a>
</div>
</div>
</form>
</div>
</div>
</div> <div class="qrcode-login">
<div class="mc">
<div class="qrcode-error-2016">
<div class="qrcode-error-mask">
</div>
<p class="err-cont">服务器出错</p>
<a href="javascript:void(0)" class="refresh-btn">刷新</a>
</div>
<div class="qrcode-main">
<div class="qrcode-img">
<img src="//img14.360buyimg.com/da/jfs/t559/51/841097244/15946/f4ff9e8/548faf09N1acc240e.png"
alt="">
</div>
<div class="qrcode-help" style="display: none; "></div>
</div>
<div class="qrcode-panel">
<ul>
<li class="fore1">
<span>打开</span>
<a href="/uc/links?tag=apps" target="_blank"
clstag="pageclick|keycount|201607144|9">
<span class="red">手机京东</span></a>
</li>
<li>扫描二维码</li>
</ul>
</div>
<div class="coagent qr-coagent" id="qrCoagent">
<ul>
<li><b></b><em>免输入</em></li>
<li><b class="faster"></b><em>更快 </em></li>
<li><b class="more-safe"></b><em>更安全</em></li>
</ul>
</div>
</div>
</div>
<div class="coagent" id="kbCoagent">
<ul>
<li>
<b></b>
<a href="javascript:void(0)"
onclick="window.location='//qq.jd.com/new/qq/login.aspx'+window.location.search;return false;"
clstag="pageclick|keycount|201607144|6" class="pdl"><b
class="QQ-icon"></b><span>QQ</span></a>
<span class="line">|</span>
</li>
<li>
<a href="javascript:void(0)"
onclick="window.location='//qq.jd.com/new/wx/login.action'+window.location.search;return false;"
clstag="pageclick|keycount|201607144|7" class="pdl"><b
class="weixin-icon"></b><span>微信</span></a>
</li>
<li class="extra-r">
<div>
<div class="regist-link"><a
href="//reg.jd.com/reg/person?ReturnUrl=http%3A%2F%2Fwww.jd.com"
clstag="pageclick|keycount|201607144|8"
target="_blank"><b></b>立即注册</a></div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="login-banner" clstag="pageclick|keycount|20150112ABD|46">
<div class="w">
<div id="banner-bg" class="i-inner"
>
</div>
</div>
</div>
</div>
</div>
<div class="w">
<div id="footer-2013">
<div class="links">
<a rel="nofollow" target="_blank" href="//www.jd.com/intro/about.aspx">
关于我们
</a>
|
<a rel="nofollow" target="_blank" href="//www.jd.com/contact/">
联系我们
</a>
|
<a rel="nofollow" target="_blank" href="//zhaopin.jd.com/">
人才招聘
</a>
|
<a rel="nofollow" target="_blank" href="//www.jd.com/contact/joinin.aspx">
商家入驻
</a>
|
<a rel="nofollow" target="_blank" href="//www.jd.com/intro/service.aspx">
广告服务
</a>
|
<a rel="nofollow" target="_blank" href="//app.jd.com/">
手机京东
</a>
|
<a target="_blank" href="//club.jd.com/links.aspx">
友情链接
</a>
|
<a target="_blank" href="//media.jd.com/">
销售联盟
</a>
|
<a href="//club.jd.com/" target="_blank">
京东社区
</a>
|
<a href="//gongyi.jd.com" target="_blank">
京东公益
</a>
|
<a target="_blank" href="//en.jd.com/" clstag="pageclick|keycount|20150112ABD|9">English Site</a>
</div>
<div class="copyright">
Copyright © 2004-2017 京东JD.com 版权所有
</div>
</div>
</div>
<script type="text/javascript" src="//misc.360buyimg.com/jdf/1.0.0/unit/base/1.0.0/base.js"></script>
<script type="text/javascript" src="/new/js/jsencrypt.min.js"></script>
<script type="text/javascript" src="/new/misc/js/login2016.js?v=201702221137"></script>
<script type="text/javascript" src="//misc.360buyimg.com/user/passport/1.0.0/js/login.index.2016-1130.js"
source="widget"></script> <script type="text/javascript"> ~function () {
var data = [{
src: "//img12.360buyimg.com/da/jfs/t4906/230/212513535/58511/85f3953d/58dce02dNe7f59c2a.jpg",
bgColor: "#22b39d",
weight: "4"
}, {
src: "//img13.360buyimg.com/da/jfs/t2749/276/1020747574/33213/870500f1/5731485aN1134b4f0.png",
bgColor: "#e93854",
weight: "4"
}, {
src: "//img30.360buyimg.com/da/jfs/t4522/358/1311178851/389232/dbd2d00c/58dc8175Ndcc4448b.jpg",
bgColor: "#0D0302",
weight: "4"
}];
var getRandom = function (arr) {
var _temp = 0, _random = 0, _weight, _newArr = [];
for (var i = 0; i < arr.length; i++) {
_weight = arr[i].weight ? parseInt(arr[i].weight) : 1;
_newArr[i] = [];
_newArr[i].push(_temp);
_temp += _weight;
_newArr[i].push(_temp);
}
_random = Math.ceil(_temp * Math.random());
for (var i = 0; i < _newArr.length; i++) {
if (_random > _newArr[i][0] && _random <= _newArr[i][1]) {
return arr[i];
}
}
};
var tpl = '<div class="login-banner" style="background-color: {bgColor}">\ <div class="w">\ <div id="banner-bg" clstag="pageclick|keycount|20150112ABD|46" class="i-inner" style="background: url({imgURI}) 0px 0px no-repeat;background-color: {bgColor}"></div>\ </div>\ </div>';
var bgData = getRandom(data);
var bannerHtml = tpl.replace(/{bgColor}/g, bgData.bgColor).replace(/{imgURI}/g, bgData.src);
$('.login-banner').replaceWith(bannerHtml);
}();</script>
<script type="text/javascript">
(function () {
var ja = document.createElement('script');
ja.type = 'text/javascript';
ja.async = true;
ja.src = ('https:' == document.location.protocol ? 'https://cscssl' : '//csc') + '.jd.com/wl.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ja, s);
})();
</script> <script src="//payrisk.jd.com/js/td.js"></script>
<script>
$(function () {
getJdEid(function (eid, fpid) {
var eValue = eid;
var fpValue = fpid;
var ee = $("#eid").prop("value", eValue);
var fp = $("#sessionId").prop("value", fpValue);
});
});
</script> <script type="text/javascript">
var _jraq = _jraq || [];
_jraq.push(['account', 'UA-J2011-12']);
(function () {
var ja = document.createElement('script');
ja.type = 'text/javascript';
ja.async = true;
ja.src = ('https:' == document.location.protocol ? 'https://jrclick' : '//jrclick') + '.jd.com/wl.dev.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ja, s);
})();
</script> <script type="text/javascript"
src="//seq.jd.com/jseqf.html?bizId=passport_jd_com_login_pc&platform=js&version=1"></script> <!-- SDK 登录 -->
</body>
</html>
PC京东登录页分析 curl的更多相关文章
- canvas-简单快速实现知乎登录页背景效果
前言 打开知乎的登录页,就可以看到其背景有一个动效,看起来好像蛮不错的样子: 这个效果使用canvas是不难实现的,接下来就一步一步地讲解并实现这个效果. 分析 在动工之前先分析这个效果到底是如何运动 ...
- 基于React的PC网站前端架构分析
代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...
- Golang在京东列表页实践总结
Golang在京东列表页实践总结 作者:张洪涛 10余年软件开发和设计经验,曾就职于搜狐.搜狗.前matrixjoy公司联合创始人.甘普科技CTO. 目前线上状态 基于搜索实现: 全量数据,搜索结果不 ...
- Jetpack Compose学习(1)——从登录页开始入门
原文地址:Jetpack Compose学习(1)--从登录页开始入门 | Stars-One的杂货小窝 Jetpack Compose UI在前几天出了1.0正式版,之前一直还在观望,终于是出了正式 ...
- session过期,登录页被内嵌iframe的解决方案
在登录页的js加上: if(window !=top){ top.location.href = location.href; } 就可以完美解决这个问题!
- Spring Security笔记:自定义登录页
以下内容参考了 http://www.mkyong.com/spring-security/spring-security-form-login-example/ 接上回,在前面的Hello Worl ...
- 【SSO单点系列】(2):CAS4.0 登录页的个性化定制
上一篇 [SSO单点系列](1):CAS环境的搭建介绍了CAS最简单环境的搭建,以及一个例子用来讲解CAS的一个最基础的用法. 今天主要是介绍如何对CAS登录页进行个性化定制. 一.开始 下图是 ...
- 【SSO单点系列】(3):CAS4.0 登录页验证码的添加
2016.08.23 更新 注意:这个教程只适合4.0版本的,4.1以及以上的版本的已经不试用了, 后面几篇有人提到过 源码网盘链接更新了下 : 链接: http://pan.baidu.com/s/ ...
- 后台跳转到登录页嵌套在iframe的问题(MVC例)
//首页 public ActionResult Index() { if (!Request.IsAuthenticated) //判断权限,没有登录就跳回登录页 {string url = Url ...
随机推荐
- C#事件-自定义事件的使用方法(转载)
1.声明一个委托类 public delegate SomethingChangedHandler(object sender,EventArgs e); 2.在你的类中声明一个事件绑定到该委托 pu ...
- [docker]docker run指定entrypiont
指定entrypiont 错误的姿势 docker run -itd -v /tmp/:/tmp/ jdk-ori 'java -jar /tmp/sms.jar' 正确的姿势1 docker run ...
- Python随手记
类属性的本质是变量对象. os.path.abspath(path) 返回绝对路径,如果填入相对路径,默认会在前面加上当前目录,组合成绝对路径. >>> os.path.abspat ...
- Windows7光盘制作: 向脱机映像添加补丁
所谓脱机(offline)映像就是WIM文件,install.wim就是脱机映像,有的install.wim里面有几个子映像,有的里面就只有一个.install.wim中有多个映像的光盘叫做多合一光盘 ...
- mysql获取插入的id主键
long _retId = -1; Connection con = null; try { con = queryRunner.getDataSource().getConnection(); qu ...
- cocos2d-JS (二)Cocos Creater
我觉得我们开发使用最新的工具.这对于我们非常有帮助. 由于新的工具有着新的功能,简化了我们开发的模式. 站在巨人的肩膀上~~~~~~~~~~~~~ CocosCreator.最大的两个特点 组件化 ...
- CentOS/Linux 网卡设置 IP地址配置永久生效
CentOS/Linux下设置IP地址 1.临时生效设置 1.1修改IP地址 #ifconfig eth0 192.168.100.100 1.2修改网关地址 #route add default g ...
- 【Selenium】之谷歌、IE、火狐浏览器各个版本的浏览器驱动下载地址
地址:chromedriver官网下载地址: http://chromedriver.storage.googleapis.com/index.html(失效了) http://npm.taobao. ...
- ajax取消重复请求
var pendingRequests = {}; $.ajaxPrefilter(function(options, originalOptions, jqXHR) { var key = opti ...
- C++ 类模板二(类模版与友元函数)
//类模版与友元函数 #include<iostream> using namespace std; template<typename T> class Complex{ p ...