自定义 ISA Server 2006 中的登录表单

在 ISA Server 2004 中虽然可以通过修改源文件来自定义表单登录界面,但是这样是不受微软支持的。在 ISA Server 2006 中虽然微软同样不对表单自定义提供技术支持,但是提供了自定义登录表单的功能,你现在可以发挥你的想像力和图像处理技术,把千篇一律的登录表单给修改一下,做出你自己的特色。

ISA Server 2006 安装时自带了两个登录表单模板,分别用于 Exchange OWA 登录和其他 情况下的表单登录,HTML 源文件位于 %ISA_Install_Folder%\CookieAuthTemplates 中对应的目录,如下图所示。在各自目录中又有不同的子文件夹,其中 HTML 目录中的就是通常使用的标准表单登录界面,而 xHTML 和 cHTML 是简化的登录界面,用于其他方式的连接,如 WAP 等等。

通常情况下我们使用的登录表单源文件为 usr_pwd.htm ,如下图所示,注意看以“@@”开始的字符串,这些字符串代表不同的引用字段,当用户通过 ISA Server 访问时,将会被 ISA Server 根据 Strings.txt 文件中的信息进行替换。

因此,当使用不同语言的用户登录时,ISA Server 只需要根据不同语言的 Strings.txt 替换对应的字段即可 。英文版的 Strings.txt 保存在和 HTML 源文件相同的目录中,而其他语言的 Strings.txt 保存在 nls 目录的对应子目录中,如下图所示,中文版的 Strings.txt 存放目录及内容。

在修改登录表单时,需要注意一下几点:

  • 尽量不要修改 HTML 源文件的结构,除非你明确知道该如何修改;

  • 尽量不要修改 HTML 源文件中涉及引用字段的 HTML 元素

  • 在修改 Strings.txt 时,注意修改后文字的长度;

  • 强烈建议在修改之前进行备份;建议通过复制来新建一个 登录表单目录并进行修改,而不修改原有目录;新的登录表单目录必须位于 %ISA_Install_Folder%\CookieAuthTemplates 目录中;

  • Microsoft Firewall 所运行的服务账户需要对表单登录目录具有读取权限 ,否则服务无法启动,错误为 5 拒绝访问。

  • 登录表单页面由 Microsoft Firewall 服务在启动时加载,因此修改完成后,需要重启 Microsoft Firewall 才能生效;

我建议大家尽量只修改图片和 Strings.txt 。我通过复制 ISA 目录得到一个新的 ISACN 目录,如下图所示,

我对 ISACN 目录下的 usr_pwd.htm 和中文 Strings.txt 进行修改,然后配置 Web 侦听器使用此表单,如下图所示。如果是 ISA Server 企业版,需要将这个目录复制到其他阵列服务器的相同位置;


点击应用保存修改并更新防火墙策略,重启 Microsoft Firewall 服务。

然后在客户端进行访问,修改后的效果就出来了,如下图所示,不过我修改的确实有点丑,看来我在图像处理上没有前途......:(

(0)

相关推荐

  • 自定义 ISA Server 2006 中的登录表单

    在 ISA Server 2004 中虽然可以通过修改源文件来自定义表单登录界面,但是这样是不受微软支持的.在 ISA Server 2006 中虽然微软同样不对表单自定义提供技术支持,但是提供了自定义登录表单的功能,你现在可以发挥你的想像力和图像处理技术,把千篇一律的登录表单给修改一下,做出你自己的特色. ISA Server 2006 安装时自带了两个登录表单模板,分别用于 Exchange OWA 登录和其他 情况下的表单登录,HTML 源文件位于 %ISA_Install_Folder%

  • 在Python的Flask框架中构建Web表单的教程

    尽管Flask的request对象提供的支持足以处理web表单,但依然有许多任务会变得单调且重复.表单的HTML代码生成和验证提交的表单数据就是两个很好的例子. Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ pip install flask-wtf 1.跨站请求伪造(CSRF)保护 默认情况下,Flask-WTF保护各种形式对跨站请求伪造(CS

  • Vue.js实现可配置的登录表单代码详解

    表单是后台项目业务中的常用组件,这次重构了登录功能以满足登录方式可配置的需求,在此记录和分享一下. 业务场景 在之前,项目只支持手机号+密码登录,前端是直接把表单写死的,后来有客户希望能支持验证码登录,有的客户还希望能有手机号+验证码+密码的登录方式-所以登录方式的灵活性需要可配置的表单支持,于是我把登录组件做了拆分. 以表单元素为粒度,分离出了手机号.密码.短信验证码这几个组件,它们内部都有自己的表单验证方法,通过组合可以快速完成登录.注册.找回密码等表单组件.高内聚低耦合.高内聚低耦合-跟着

  • Python爬虫之Selenium中frame/iframe表单嵌套页面

    在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中. 本章中用到的关键方法如下: switch_to.frame():切换为frame/iframe表单的内嵌页面中 switch_to.parent_frame():退出内嵌页面 以ip138网站为例 f

  • Spring security 自定义过滤器实现Json参数传递并兼容表单参数(实例代码)

    依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g

  • Spring Security登录表单配置示例详解

    目录 Spring Security登录表单配置 1.引入pom依赖 2.bootstrap.yml添加配置 3.创建login.html 4.创建配置类 5.配置细节 6.登陆成功 7.登陆失败 8.注销登录 Spring Security登录表单配置 1.引入pom依赖 ​ 创建一个Spring Boot工程,引入Web和Spring Security依赖: <?xml version="1.0" encoding="UTF-8"?> <pro

  • bootstrap中的 form表单属性role="form"的作用详解

    html 里面的 role 本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明.通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性.可用性和可交互性. role的作用是描述一个非标准的tag的实际作用.比如用div做button,那么设置div 的 role="button",辅助工具就可以认出这实际上是个button 比如, <div role="checkbox" aria-checked="c

  • J2EE中的struts2表单细节处理

    /struts-tags中自带了很多标签 比如一个简单的登录表单,其中自带了很多的样式,实际上如果你不需要用到struts的实际功能的时候不建议使用 <s:form action="user_save"> <s:token></s:token> <s:textfield name="username" label="用户名"></s:textfield> <s:textfield

  • Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

    vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开箱即用,还支持自定义正则表达式.而且支持 40 多种语言,对本地化.多语言支持非常友好. 国内饿了么团队开源项目 Element UI 就用到了 vee-validate . vee-validate 官网:https://baianat.github.io/vee-validate/ 1. 安装

  • Vue中使用vee-validate表单验证的方法

    Vue项目遇到要表单验证了吧,对我来说表单验证是个很纠(dan)结(teng)的内容,各种判断凌乱到飞起.往常使用jquery的validate插件做表单验证方便吧,你也可以在Vue里引入jquery的validate插件(如何引入jquery在我上一篇博文有介绍,点击查看).但是我们是做vue项目也,不到实在解决不了还是建议不要引入,因为Vue自己就有表单验证的插件,那就是vee-validate. 我在这并不是详细讲解vee-validate的使用功能,只是快速了解如何在项目里使用vee-v

随机推荐