通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>VC编程>>正文 新版上线![旧版]
注:打开慢时请稍等

使用ISAPI过滤器请求用户名和口令字

http://www.iyit.net  日期:2006-5-23 12:32:09  来源:网络转载   点击:

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:使用ISAPI扩展转发服务器信息
下一篇:使用Microsoft Help Workshop
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

参加讨论】使用ISAPI过滤器请求用户名和口令字:    存在许多不同的方式来使用IIS安全过滤器,但在完成其它工作前,让我们先了解一下如何制作一个简单的过滤器。本节帮助你理解如何创建一个过滤器,该过滤器在服务器上传递值,并使用这些值对用户的合法性进行证实。
    过滤器需要做的第一件事是从用户那里得到输入,这些输入通常包含用户名和口令字。一旦过滤器确定用户已提供了某些输入,它就简单地把控制移交给服务器去进行验证工作。当然这并不总是你所想的结果。你也许想在过滤器内完成一些服务器通常不做的附加处理。过滤器也许还要提供某种形式的附加解密功能,或许还要有专门的错误消息处理功能。下列内容是安全过滤器能提供的附加特性。
    解密 我们总是选择在客户端对用户名和口令字进行加密,然后在服务器端对它们解密。ISAPI过滤器恰好能够胜任这一工作。
    认证 Windows NT 不强制使用内置的认证功能,你总是可以选择自己去认证用户并给予用户适当的安全级。于是,可以进行认证,然后把用户分到某一个组,之后让Windows NT负责细节。有许多不同的认证场合。
    定制化错误处理 也许你不喜欢Windows NT错误处理的方式,ISAPI 过滤器提供了限制最少的错误处理功能。当然,你提供的错误处理的精确层次由客户机和服务器来确定,这意味着你想对用户访问使用的浏览器实施控制。
    专门化访问处理 有时不想让每个人都能在24小时内随时访问Web站点。无论是IIS还是Windows NT目前都没有办法使你的服务器对于一般用户是关闭的而对另外的用户仍然是开放的。而ISAPI过滤器能基于当前时间或其它规则提供访问,甚至可以基于服务器加载来限制访问某些站点。
    现在我们对过滤器能干些什么有了一个一般的了解。我们下面给出一个例子。首先是使用本章前一节中创建ISAPI过滤器的过程创建一个框架。创建工程时有一点差别,这个差别是该程序命名为AuthUser,你可以随便起个其它什么名称。在ISAPI Extension Wizard( ISAPI扩展向导)- Step2 of 2对话框中,选中Client Authentication Request(客户机认证请求)选项,并且不选中End ofConnection(连结终止)选项。程序列表13.12是要向OnAuthenticate()函数添加的代码。随后我们将对这些代码的作用进行说明。
    注释 为了能够让本示例正常运行,必须把测试的Web服务器设置成允许Chanllenge / Reponse 安全层次。如果你使用绝大多数情况下使用的Windows NT Authentication方法,那么该示例将不能正常工作。另外,还必须把目标目录设置成不允许匿名访问的方式。







    正如你所看到的,比起前一个ISAPI过滤器示例来,这儿的代码复杂多了。其中我们需要完整的一件工作是从过滤器直接向服务器传递信息,之后再把它传给客户机。这个过滤器完成了三步操作:
    1. 使用GetServerVariable()函数取得用户名,确定用户是否是匿名地访问服务器。(用户名返回值为空白,表明用户是匿名地访问服务器)。如果是,使用SeverSupportFuction()函数告诉服务器向客户机发出401错误信息。这使得显示出浏览器口令对话框,在这个对话框中用户输入口令字和用户名。
    2. 用户输入口令字和用户名之后,使用GetServerVariable() 函数从输入流中提取它们,把用户名和口令字传递给Windows NT进行安全认证。
    3. 使用SF_STATUS_REQ_NEXT_NOTIFICATION返回值告诉服务器,过滤器已成功地完成使命。
    由于需要使用三个步骤,因此,使用安全过滤器时总有些令人吃惊的东西,例如,在使用GetServerVariable()函数提取用户名与口令字和使用Strncpy()函数把这一信息拷贝到pAuthent结构之间的时间内,对过滤器进行第二次操作期间将会进行解密。在第三个步骤中也要发生一些事情,例如,要对你需要直接与用户交互作出决定,这通常发生于对过滤器进行的第三次操作中。
    请注意,我提供了SF_STATUS_REQ_NEXT_NOTIFICATION这个返回值。这是让服务器处理认证用户和显示Web页等细节的一个信号。如果想自己完成全部认证工作,就需要显示请求的信息。
    技巧 IIS通常在报错前提供三次机会让你正确地输入口令字。有两种办法可以防止这一行为的发生。第一种,在对过滤器进行的第二、第三次操作之间,自己完成认证。这样就可以给用户以另外的机会来提供正确的口令字,并将正确的用户名和口令字传递给服务器。第二种方法是使用SF_STATUS_REQ_ERROR返回值在第一次企图访问Web 服务器失败后就终止进一步的访问企图。这一个返回值将显示一个服务器错误消息,并且可能会欺骗一些不那么精明的用户,让它们以为服务器发生了问题,从而不再企图访问服务器。
    一旦编译了这个过滤器,使用本章第一个ISAPI过滤器相同的技术安装它。运行这个示例就会看到如下图所示的口令对话框。

    如果你键入了并不存在的用户名或口令字,则会看到如下图所示的服务器生成的报错消息。
    输入一个有效的用户名和口令字就可以访问该Web站点了。
 相关文章
最新更新 热点排行 推荐新闻
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
建立安装程序
收 集 文 件
理解各种打包类型
打包应用程序
向应用程序增加基于HTML的帮助
VC++实现对远程计算机屏幕的监视
用VC++6.0的Sockets API实现一个聊天室
多线程技术在VC++串口通信程序中的应用
用VC++制作一个简单的局域网消息发送工
用VC 6.0实现串行通信的三种方法
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
WEB服务器配置全攻略(三)
QQ珊瑚虫外挂4.0版本发布!
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
内存混插常见问题和解决方法
Office2007简体中文版浮出水面 美图抢
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息