exchange邮箱的”单点登陆“
在跟exchange集成登陆时,通常有这样的需求,用户需要点击邮件链接的时候直接打开,不再需要输入用户名密码,实现所谓的单点登陆。
登陆原理:用js模拟表单登陆
代码: POSTExchange: function (username,password,url) {
///<summary>
/// 单点登录方法
///</summary>
var page = window.open("xxxx.loginExchange", "1");
setTimeout(function () {
var span = page.document.createElement("span");
span.innerHTML = "正在加载中...";
page.document.body.appendChild(span);
var form = page.document.createElement("form");
form.style.display = "none";
form.action = "http://XXXXX/owa/auth/owaauth.dll";
form.method = "post";
form.innerHTML = " <input name=\"username\" type=\"text\" value=\"" + username + "\"/>"
+ "<input name=\"password\" type=\"password\" value=\"" + password + "\" />"
+ "<input name=\"destination\" type=\"text\" value=\"" + obj._destination + "\" />"
+ "<input name=\"flags\" type=\"text\" value=\"0\" />"
+ "<input name=\"forcedownlevel\" type=\"text\" value=\"0\" />"
+ "<input name=\"trusted\" type=\"text\" value=\"0\" />"
+ "<input name=\"isUtf8\" type=\"text\" value=\"1\" />"
+ "<input type=\"submit\" value=\"提交\" />";
setTimeout(function () {
page.document.body.appendChild(form);
setTimeout(function () {
form.submit();
setTimeout(function () {
//跳转
if (obj._baseClass._location) {
window.open( url , "1");
}
}, 1000);
}, 1500);
}, 500);
}, 500);
}
},
登陆原理:利用xmlheeprequest对象,传递用户名密码通过认证代码:function Authen(username, password, url) {var auth;try {auth = new ActiveXObject('Msxml2.XMLHTTP');} catch (e) {try {auth = new ActiveXObject('Microsoft.XMLHTTP');} catch (e) {auth = new XMLHttpRequest();}}auth.open('get', url, false, username, password);auth.send(null);switch (auth.status) { //检测auth.send以后的状态,case 200: //状态为:200代表用户名密码正确,window.location.href = url; //浏览器重转向至OWAbreak;case 401: //状态为:401代表用户名密码不正确,身份验证错误alert("用户无效或密码错误。");break;default: //其它状态,如服务器无法访问alert("对不起,服务器发生错误,请稍后再试!");break;}}以上两种方式各有弊端,第一种无法捕获服务器响应,并且经过多次测试,并不是每次都能直接打开。第二种需要exchenge支持windows认证,并且需要允许脚本跨域读取数据源(仅在IE浏览器可行)。除此之外,需要考虑发送用户名密码时的安全性。
exchange邮箱的”单点登陆“的更多相关文章
- 集成基于CAS协议的单点登陆
相信大家对单点登陆(SSO,Single Sign On)这个名词并不感到陌生吧?简单地说,单点登陆允许多个应用使用同一个登陆服务.一旦一个用户登陆了一个支持单点登陆的应用,那么在进入其它使用同一单点 ...
- cas单点登陆。就这一篇就够了!!!!!
前言: cas是什么我就不累赘说了.就简单说下大致的流程.首先,cas是一个独立的项目.就是一个war包,部署在tomcat上面启动就ok.然后我们要实现单点登陆,无疑是访问系统1,如果没有登录,就跳 ...
- centos7下ldap+kerberos实现单点登陆
一. LDAP概念 http://wiki.jabbercn.org/index.php/OpenLDAP2.4%E7%AE%A1%E7%90%86%E5%91%98%E6%8C%87%E5%8D%9 ...
- 集成基于OAuth协议的单点登陆
在之前的一篇文章中,我们已经介绍了如何为一个应用添加对CAS协议的支持,进而使得我们的应用可以与所有基于CAS协议的单点登陆服务通讯.但是现在的单点登陆服务实际上并不全是通过实现CAS协议来完成的.例 ...
- Lind.DDD.SSO单点登陆组件的使用(原创)
回到目录 一般sso的说明 在Lind.DDD框架里,有对单点登陆的集成,原理就是各个网站去sso网站统一登陆授权,之后在sso网站将登陆的token进行存储,存储方式随你(cache,redis,m ...
- ASP.NET 单点登陆
第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...
- (原创)AD账户误删导致Exchange邮箱被删 莫苦恼
由于人员变动,离职人员AD账户和邮箱经常要删除.但是在删除AD账户的时候难免会犯错,将在用的用户给删除了,这是个痛苦的事情, 然后你会发现Exchange邮箱也会跟着删除,抓狂了..,还好,幸亏这里进 ...
- tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片
本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tornado的后端和ajax的 ...
- ASP.NET在不同情况下实现单点登陆(SSO)的方法
第一种:同主域但不同子域之间实现单点登陆 Form验证其实是基于身份cookie的验证.客户登陆后,生成一个包含用户身份信息(包含一个ticket)的cookie,这个cookie的名字就是在web. ...
随机推荐
- [SQL学习笔记][用exists代替全称量词 ]
学习sql的必经问题. 学生表student (id学号 Sname姓名 Sdept所在系) 课程表Course (crscode课程号 name课程名) 学生选课表transcript (studi ...
- Dreamwaver 使用root用户连接不上远程服务器
我用dreamweaver连接远程服务,开始用的是root用户登录的,但是连接不上.网上查了一下,解决教程非常复杂,我就不列出来了. 后来我想了一下,之前我有连接过.我感觉可能是用户的问题,于是我在远 ...
- Entity Framework中实现查询的几种方法
在介绍几种方法前,献上一张图,希望图的作者不要追究我的盗图之过.本文的内容是我自学时的笔记,自学的内容来自网络.手打的代码,切不可直接复制过去用,会有好多错别字什么的. Entity SQL 类似于S ...
- Python学习笔记2(控制语句)
1.if条件语句 if(表达式): 语句1 else: 语句2 2.if...elif...else判断语句 if(表达式1):语句1 elif(表达式2):语句2 ... elif(表达式n):语句 ...
- uva 10935 throwing cards away <queue>
Given is an ordered deck of n cards numbered 1 to n with card 1 at the top and card n ...
- (原)vs2013静态及动态链接opencv3.0的库
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5477551.html 静态链接步骤如下: 1. 在“通用配置”-“VC++目录”-“包含目录”中添加: ...
- shell中的数学运算
shell中要进行数学运算通常有3中方法: expr命令 比如 expr 1 + 6就会返回7,使用expr的缺点就是碰到乘法运算,或者加括号(因为它们在shell中有其他意义),需要使用转义,比如: ...
- [ofbiz]less-than (<) and greater-than (>) symbols
问题描述: In field [updateItemStr] less-than (<) and greater-than (>) symbols are not allowed 此处的f ...
- js前台获取list的demo
后台 bannerlist=homePageService.searchBanner(bannerVO); // 注意这里的Gson的构建方式为GsonBuilder,区别于test1中的Gson g ...
- JavaScript函数学习要点总结(一)
1.函数的最大作用是提供代码复用: 2.JavaScript函数是弱类型语言,定义函数时既不要声明函数的返回值,也不要声明函数的参数列表类型: 语法如下: function functionName( ...