在OWA2003的表单登录里只使用用户名登录
来源:互联网
作者:west263.com
时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
本文翻译自MSEXCHANGE.ORG当用户启用了EXCHANEG 2003的OWA的表单访问(FBA)后,用户将能够看到一个漂亮的验证页面。默认情况下,用户将能够使用domain\username或username@domain.com两种方式登录。但往往用户希望实现只输入用户名就能够登录。怎么做呢?
我们想到的肯定是去修改IIS管理器里的基本验证后的域名(默认是"\")为您的实际域名,但遗憾的是,修改后只能保留一段时间,一旦重新启动或15分钟后,该配置就会恢复。这是怎么回事呢?
大家假如认真的研究过,就会发现在ESM里也有虚拟目录的配置,如图:

而下面是IIS管理器里的配置。

大家能够看到ESM里的配置是灰色的,不可修改的,而IIS里的配置是可改的,而EXCHANGE设计是从ESM(也就是AD里)读取配置到IIS里,因此在IIS里的修改将不能保留。周详情况请参考:
240105 - XGEN: General Information on Directory Service/Metabase Synchronization in Exchange 2000 Server
bitsCN.nET中国网管博客
264941 - XCCC: Changes to Virtual Directory Settings Are Not Maintained
830827 - How to Use Forms Based Authentication with Outlook Web Access Clients in Exchange Server 2003
820378 - Outlook Web Access session unexpectedly quits when forms-based authentication is used
所以IIS里的配置是不能修改的。那么我们要怎么做呢?显然要去修改登录页面。
1、找到OWA的页面文档,在C:\Program Files\Exchsrvr\exchweb\bin\auth\usa (这里是英文版的)假如是中文的,则是对应语言目录。页面文档名logon.asp.
2、找到如下内容: bitsCN.Com
<% If g_fIsMSIE5Rich Then %>
<BODY scroll="AUTO" bgColor="#3D5FA3" text="#000000" leftMargin=0 topMargin=0>
<FORM action="/exchweb/bin/auth/owaauth.dll" method="POST" name="logonForm" autocomplete="off">
<% Else %>
<BODY scroll="AUTO" bgColor="#FFFFFF" text="#000000" onload="window.document.logonForm.username.focus()">
<FORM action="/exchweb/bin/auth/owaauth.dll" method="POST" name="logonForm">
<% End If %>
3、将其中的<FORM action="/exchweb/bin/auth/owaauth.dll" method="POST" name="logonForm" autocomplete="off">替换成以下脚本:
<script Language=javascript>
bitsCN.Com
<!--
function logonForm_onsubmit()
{
if (logonForm.username.value.indexOf("@") !=-1)
{
return true;
}
logonForm.username.value = "NetBIOS domain here\\" logonForm.username.value;
return false;
}
//-->
</script>
<FORM action="/exchweb/bin/auth/owaauth.dll" method="POST" name="logonForm" autocomplete="off" onsubmit="logonForm_onsubmit()">
NOTE:
这里的NetBIOS domain here要替换成您的域名的简格式,假如域叫ABC.COM,则写成ABC。
4、继续寻找该文档的第20行的以下内容:
CONST L_UserName_Text = "Domain\username:"
将其中的"Domain\"删除,同时也将24、25、26行的同样内容删除。
修改后的界面:
www_bitscn_com 假如您使用上述代码后登录出现问题,也能够使用下面的两段代码:
1.
<script type="text/javascript" language=攋avascript?gt;
function logonForm_onsubmit() {
var userName=logonForm.username.value;
if (userName.indexOf("@") !=-1)
return true;
else if(userName.indexOf("\\") !=-1)
return true; bitsCN_com
else{
logonForm.username.value = "YOUR_DOMAIN_NAME\\" userName;
return true;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



