在D:\Delphi7\Demos\WebSnap\PhotoGallery中的这个websnap技术中,他只要在EndUserSessionAdapter1中设置logpage属性便能对未经过验证的网页进行自动转向到登录页面,我不知道他是通过什么道理能实现这样的功能的?
难道他是在html中写了什么代码,那这代码又是什么呢?
如果我在摸板是自己添加一个超级连接,未经过身份验证的也一样能跳出对话框显示,“请先登陆”,或直接跳转到该登录页又该如何写呢?
请高手帮忙。
难道他是在html中写了什么代码,那这代码又是什么呢?
如果我在摸板是自己添加一个超级连接,未经过身份验证的也一样能跳出对话框显示,“请先登陆”,或直接跳转到该登录页又该如何写呢?
请高手帮忙。
解决方案 »
- Delphi 修补漏洞问题
- 各位大哥,这个问题帮帮我吧
- 我用printer.canvas.stretchDraw(r,image1.picture.graphics)打印,为什么有时打出的是空白
- 刚接触DELPHI,求教与ACCESS数据库链接问题!
- 请各位大侠指点!
- 大家来帮忙看看!字符串替换问题
- 货币格式转换问题。
- 运行期间的insert语句应该怎么写?
- Delphi6编译好的程序不能在Delphi5.0中打开?
- delphi6让我欢喜让我忧!
- 请问各位:动态创建的空件,怎么样能让它象在设计期一样给予焦点,灵活的用鼠标拖动改变其大小
- **在table控件中选择时databasename时,提示could not find object,是何原故?
如果已建立了一个没有要求登录的页,可以在以后修改:
1. 在编辑器中打开与 Web 页模块关联的 .pas 文件。
2. 滚动到 implementation 部分。在 WebRequestHandle.AddWebModuleFactory 命令的参数中,找到 TWebPageInfo 对象的构造器。它应当象这样:
TWebPageInfo.Create([wpPublished{, wpLoginRequired}], '.html')
3. 去掉参数列表的 wpLoginRequired 部分的注释,即删除花括弧。TWebPageInfo 构造器现在象这样:
TWebPageInfo.Create([wpPublished, wpLoginRequired], '.html')
要从一个页去除登录需求,使用相反的过程,并重新把构造器的“wpLoginRequired”注释掉。注意,可用相同的过程来使页发布或不发布,即按需要简单地添加或删除“wpPublished”部分的花括弧。
当然,应用程序也需要一个登录页。在试图访问有权限的页的时候或之前,用户要输入他们的用户名和口令来验证身份。用户也能指定完成验证时收到哪个页面。如果用户名和口令与 Web 用户列表相匹配,则用户获得合适的访问权限,并进入在登录页面指定的页。如果用户未通过验证,可以重新显示登录页(缺省的行为)或可以发生其它行为。
很幸运,通过使用 Web 页模块和 Adapter 页生成器,WebSnap 可很容易地建立简单的登录页面。要建立登录页面,从建立一个新的 Web 页模块开始。选择 File|New|Other,显示 New Items 对话框,然后从 WebSnap 窗格中选 WebSnap Module。选择 AdapterPageProducer 作为页生成器类型。再填写你需要的其它选项。为登录页起一个好的名称。
现在应当添加最基本的登录页字段:用户名字段,口令字段,一个选择框给用户选择登录后收到哪个页,一个登录按钮用来提交页面及身份验证。要添加这些字段:
1. 为建立的页模块添加一个 LoginFormAdapter 组件(可以从组件面板上的 WebSnap 窗格中找到)。
2. 双击 AdapterPageProducer 组件显示 Web 页编辑器窗口。
3. 右键点击左上角的 AdaterPageProducer,选择 New Component。在 Add Web Component 对话框中选择 AdapterForm 并点击 OK。
4. 给 AdapterForm 添加一个 AdapterFieldGroup。(右键点击左上角的 AdapterForm,选择 New Component。在 Add Web Component 对话框中选择 AdapterFieldGroup 并点击 OK。)
5. 现在到 Object Inspector 把 AdapterFieldGroup 的 Adapter 属性设置为 LoginFromAdapter。UserName,Password 和 NextPage 字段应自动出现在 Web 页编辑器的 Browse 窗格。
因此,WebSnap 在几个简单步骤中处理大部分工作。登录页还缺少一个登录按钮,它把表单上的信息提交用于验证。添加一个登录按钮:
1. 为 AdapterForm 添加一个 AdapterCommandGroup。在 Object Inspector 中把它的 DisplayComponent 属性值设置为 AdapterFieldGroup。
2. 为 AdapterCommandGroup 添加一个 AdapterActionButton。
3. 点击 AdapterActionButton(列在 Web 页编辑器的右上角),用 Object Inspector 把它的 ActionName 属性修改为 Login。在 Web 页编辑器的 Browse 窗格,可以看见一个登录页的预览。
Web 页编辑器类似于下图显示。
从 Web 页编辑器中看到的登录页例子:
如果按钮未出现在 AdapterFieldGroup 下面,确定 AdapterCommandGroup 列在 Web 页编辑器的 AdapterFieldGroup 下面。如果 AdapterCommandGroup 出现在上面,选中它,并点击 Web 页编辑器的下向箭头(通常,Web 页元素出现的次序与它们在 Web 页编辑器中相同)。然后在 Object Inspector 中,把 AdapterCommandGroup 的 DisplayComponent 属性置为 AdapterFieldGroup。
在登录页有功能之前,还需要多个步骤。需要指定在最终用户会话 Adapter(EndUserSessionAdapter)中指定哪个是登录页。在 Web 应用程序模块中选择 EndUserSessionAdapter 组件,在 Object Inspector 中,把 LoginPage 属性修改为登录页的名称。现在该登录页对 Web 服务器应用程序的所有页可用。