IIS的Authentication和Session

Mittermeyer 2004-01-15 05:44:48
2004-01-05的时候,我问过一个问题“如何获得IE登录IIS的认证信息?”,对问题描
述的不够清楚,现在重新整理了一下:

先说明一下我的应用,整个系统B/S结构,服务端为Windows2000 Server,IIS5+DotNET
Framework 1.1,服务段的Web Application关闭匿名登录,采用Windows集成认证的方
式。客户端的环境包括Windows 2000和XP,总之IE 5.5以上,因为客户端会安装一组增
强功能的控件,所以也需要安装DotNET Framework 1.1。
主要的问题在于这组控件上,这些控件简单的说就是为了增强本地文件操作的功能,比
如能够一次从服务段下载一个目录下的所有文件(服务端文档内容在数据库中,所谓目
录是系统的逻辑结构,并且操作系统的文件夹,当然下载之后的形式为一个文件夹和一
系列文档)。这个下载操作,就需要控件直接向服务段发送HTTP请求,并且处理响应。

正式因为上述结构所以产生了一些问题,如果客户工作在和发布系统的应用服务器在同
一个域中,工作站当前登录用户为域用户,则我在代码中如下编写:
......
oRequest.Credentials = CredentialCache.DefaultCredentials;
......
则以当前登录用户的身份访问服务器。

如果客户工作站没有登陆到域中,也就是说当前登录用户不是域用户,使用IE访问应用
服务的时候IE会显示一个登录框,要求输入用户名、口令和域名,正确输入之后可以访
问应用服务。但是当使用控件完成的功能的时候,同样是如上代码,但是会显示401
Unauthorize的错误。

我想知道的是:IE已经登录了,那么将该IE容器作为宿主的控件(也就是我上面应用的
情况)能否自动集成IE登录的会话(现在是没有,在服务端启动新的会话),如果无法
集成会话,那么怎样才能够利用IE显示登陆框之后已经获得用户名和口令,我不需要知
道用户名和口令具体是什么,只要能够拿到Credentials就可以了。

再次弹出对话框和服务段设置一个账号和口令通过生成页面时赋值这类的方法就免了,
我想知道更好的解决方案。

希望和大家讨论,谢谢!
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
elite2018 2004-01-17
  • 打赏
  • 举报
回复
use hidden form
Mittermeyer 2004-01-17
  • 打赏
  • 举报
回复
谢谢关注!不过麻烦看清楚问题,如果是服务端认证方式的问题,我就不到这个版面问了,而且我也不需要写这么多东西了。
acewang 2004-01-16
  • 打赏
  • 举报
回复
倒!

对客户端的认证是由服务器端决定的,认证不对只能是服务器端的设置问题
Mittermeyer 2004-01-16
  • 打赏
  • 举报
回复
再次申明一下,我说的问题和服务端配置无关,是客户端的问题。
是IE和IE浏览的页面中使用到的控件使用同一份认证信息的问题。
Mittermeyer 2004-01-15
  • 打赏
  • 举报
回复
不是服务端的设置,服务端非常好,就是这样设置的。
<identity impersonate="true" />

我说的是客户端的问题。
acewang 2004-01-15
  • 打赏
  • 举报
回复
Windows Authentication Provider
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconthewindowsauthenticationprovider.asp
acewang 2004-01-15
  • 打赏
  • 举报
回复
web.config:
<identity impersonate="true" />

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧