MOSS & SSO 系列5
偶尔在WinOS上看到这个:在body下放入如下代码:
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function plogin_onclick() {
var Location="http://winos.cn/exchange/";; //你的Exchange默认登录地址( 填入你自己的域名)
var serpath="http://winos.cn";; //当输入错误时,返回的地址。
var uname=document.login.name.value;;
var upwd=document.login.pwd.value;;
if (document.login.name.value==""){
alert("帐号不能为空!");
document.login.name.focus();
return false;
}
if (document.login.pwd.value==""){
alert("密码不能为空!");
document.login.pwd.focus();
return false;
}
var auth = new ActiveXObject("msxml2.xmlhttp")
auth.open("get",Location,false,login.name.value ,login.pwd.value )
auth.send()
switch(auth.status){
case 200:
login.action=Location;
login.submit
break;
case 401:
alert("帐号无效或密码错误。");
login.action=serpath;
login.submit
break;
default:
alert("服务器发生错误,请稍后再试!");
}
}
//-->
</SCRIPT>
这个主要是定制OWA的登录页,仔细想想可以用到其他的SSO系统中,
public void LoginExchange(Page page)
{
string url=ConfigurationSettings.AppSettings["ExchangeServer"];
string user=User.Identity.Name;
string pwd=Session["pwd"].ToString();
StringBuilder StrScript = new StringBuilder();
StrScript.Append( "<script language=javascript>" );
StrScript.Append("function GoToEmail(){");
StrScript.Append( "var auth = new ActiveXObject(\"microsoft.xmlhttp\");");
StrScript.Append( "auth.open(\"get\",\""+url+"\",false,\""+user+"\",\""+pwd+"\");");
StrScript.Append("auth.send();");
StrScript.Append( "window.open( \""+url+"\");" );
StrScript.Append( "}</script>" );
if ( ! page.IsStartupScriptRegistered( "LoginExchange" ) )
{
page.RegisterClientScriptBlock("LoginExchange",StrScript.ToString());
}
}
恩,马上试试。