以前都是Enterprise Portal(EP)在管理BW的报表,所以也不存在诸如用户切换的问题。
但是,今天用户真的没有用到EP,情形是怎么样的呢?
第一次登录(无论你是刚开IE或是已经有其他也没打开了)系统会采用弹出窗口的方式让你做用户登录。 当然,你可以在Service把用户定好,这样就不会出现提供用户输入的框了,不过就失去了权限控制。
当然,今天的问题不是在这个,而是用户第一次登录后,输入了用户密码,进行了身份确认,如果要切换用户怎么办? 因为我们发现,除非关掉整个IE,否则,再次进入系统是不需要输入用户密码信息的,也就是,输入地址后,直接就可以进入到report或WAD。
用户为了切换用户,不得不关闭已经打开的所有web页面,用广东话来说就是“接受唔到!”,
我的重心倒不是去找BW的什么功能,因为这个不是她的错。 关键是ITS的logout问题,我最初想到请cookie,不过找不到证据。 可以确认的是Session的作用,因为关闭IE即可以实现退出功能。
于是乎,疯狂查询诸如ITS, logout ,seesion等字眼,在某个时候一条JS语句把我深深的吸引住了,不是S型的。
document.execCommand( 'ClearAuthenticationCache' );
还没有做任何测试,我已经感觉到这个就是我要的了。
经过测试之后,解决了ITS注销的问题。 在加入一些JS修饰之后,就更完整了。
代码如下, 只要把这个函数放到除非事件中即可。
function w_close(){
var txtPrompt = "是否关闭当前窗口?";
if( window.confirm( txtPrompt ) ) {
document.execCommand( 'ClearAuthenticationCache' );
var browserName=navigator.appName;
if (browserName=="Netscape") {
window.open('','_parent','');
window.close();
} else if (browserName=="Microsoft Internet Explorer") {
window.opener = "Page";
window.close();
}
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/554557/viewspace-703211/,如需转载,请注明出处,否则将追究法律责任。