产品:Lotus Domino
平台:AIX, i5/OS, Linux, OS/390, OS/400, Solaris, Windows, z/OS
软件版本:7.0, 6.5, 6.0, 5.0
问题描述:
自定义的登录表单,比如Domino Web服务器配置数据库(domcfg.nsf)的$$LoginUserForm,包含一个 RedirectTo 的域。这个域的值是由服务器进行设置的,以便于在用户输入密码通过验证后,服务器可以将用户重定向到原始请求的资源上。
现在您想修改这个RedirectTo域的值。您发现在RedirectTo域使用公式或设置默认值都不起作用,因为服务器会对这个域自动进行设置,并且会根据用户身份而改变它的值。能否修改这个域的值呢?
解答:
您可以用JavaScript代码按照以下步骤修改 RedirectTo 域的值。在这个例子中,登录表单不论用户当前是否通过 https请求资源,都将用户转为通过 https 请求资源。
步骤:
1. 打开 Domino Designer 客户端及要修改的登录表单。在这个例子中,我们修改 domcfg.nsf 数据库中的 $$LoginUserForm。
2. 在设计窗格的对象(Objects)部分,在Database Form的 html 表单下选择“onSubmit”。
3. 确认运行设置为“Web”和“JavaScript”
4. 在 代码窗格,输入一个函数的名字,这会在以后的几个步骤中定义。本例中,我们用modRedir();
代码窗格截屏:
5. 选择 html 表单中的“JSHeader”部分。确认 Run 部分被设置为“Web”和“JavaScript”。
6. 在已有代码的末尾,定义如下 modRedir 函数:
function modRedir() {
temp = document.forms[0].RedirectTo.value;
document.forms[0].RedirectTo.value= "https://servername.ibm.com "+temp;
}
代码窗格截屏:
7. 保存登录表单。
8. 打开Web浏览器并验证服务器上的任意资源。注意:登录成功后,您被重定向到通过 https 请求资源。
您可以用这些步骤修改 RedirectTo 域的值,例如,将用户转到另一个Web站点,另一个指定的协议或转到另一个数据库,而不是初始请求的资源上。
您可以通过在因特网搜索引擎查找“JavaScript Language Reference”获取更多关于 JavaScript 函数的信息。