最近项目需要对OWA(outlook web access)进行集成,通过我们自己的页面登录OWA,在网上找了很久,终于在
Direct OWA Login找到了一个真正可用的版本,无奈呀。
不过在调试过程中还是除了一些小状况:
原代码:

Code

function DirectLogin (vstrServer, vstrDomain, vstrUsername, vstrPassword)
{
//var url = "https://" + server + "/exchweb/bin/auth/owaauth.dll";
var strUrl = "https://" + vstrServer + "/exchweb/bin/auth/owaauth.dll";

var strExchange =
{destination:'https://' + vstrServer +
'/exchange',flags:'0',forcedownlevel:'0',
trusted:'0',isutf8:'1',username:vstrDomain +
'\\' + vstrUsername,password:vstrPassword};
var myForm = document.createElement("form");
myForm.method="post" ;
myForm.action = strUrl ;


for (var varElement in strExchange)
{
var myInput = document.createElement("input") ;
myInput.setAttribute("name", varElement) ;
myInput.setAttribute("value", strExchange[varElement]);
myForm.appendChild(myInput) ;
}
document.body.appendChild(myForm) ;
myForm.submit() ;
document.body.removeChild(myForm) ;
}
由于我们自己建立的owa配置有些不一样,最终修改后能运行的代码是

Code
function DirectLogin(vstrServer, vstrDomain, vstrUsername, vstrPassword) {
var strUrl = "https://" + vstrServer + "/owa/auth/owaauth.dll";
var strExchange = { destination: 'https://' + vstrServer + '/owa',
flags: '0', forcedownlevel: '0',
trusted: '0', isutf8: '1', username:vstrUsername, password: vstrPassword
};
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = strUrl;
for (var varElement in strExchange) {
var myInput = document.createElement("input");
myInput.setAttribute("name", varElement);
myInput.setAttribute("value", strExchange[varElement]);
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
主要就是在用户名去掉域名等多处更改就通过了。
呵呵,又学了一招。