在IIS中使用Windows域服务器域摘要式身份验证对Web应用程序进行访问

本文介绍如何利用IIS6的Windows域服务器域摘要式身份验证功能,实现应用程序的访问控制。具体步骤包括配置Windows环境、IIS设置及代码实现等,通过线程获取用户信息并进行权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/dkman803/archive/2007/07/23/1703826.aspx 

优势:使用IIS6中的Windows域服务器域摘要式身份验证对应用程序的访问进行控制。
可以在有域控制器的网络中不用特意去维护用户列表和用户密码列表。
这样开发者只需要关注用户的权限就,从而简化管理。
这样可以简化管理,尤其是有多套并行运行的信息系统的情况下。

一、实现原理

1.客户访问IIS服务器。
2.Web服务器向域服务器进行身份验证。
3.通过之后与IIS服务器建立一个线程。
4.从线程中获取用户信息再进行程序内部权限控制。

物理结构

逻辑结构

二、Windows设置

我们以Windows2003 SP2 IIS6 ASP.Net 2为试验系统

三、IIS设置

四、代码实现

程序中使用到的命名空间

 System.Threading 命名空间提供一些使得可以进行多线程编程的类和接口。
除同步线程活动和访问数据的类(Mutex、Monitor、Interlocked、AutoResetEvent 等)外,
此命名空间还包含一个 ThreadPool 类(它允许用户使用系统提供的线程池)
和一个 Timer 类(它在线程池线程上执行回调方法)。

代码说明:当通过域认证之后,生成一个HTTP线程连接到IIS服务器,然后从线程中获得域域身份信息。
之后根据域身份信息来获取用户在Web应用程序中的权限。
// 用于域用户认证
using  System.Threading;              // Windows HTTP线程命名空间
private   void  setRule( string  rulename)
{
    WindowsPrincipal wp 
= (WindowsPrincipal)Thread.CurrentPrincipal; //创建对象wp 用于Thread创建一个http线程,CurrentPrincipal获取线程的当前域角色
   string wpname = wp.Identity.Name.ToString();
   
int j = wpname.LastIndexOf(“/”);    //程序取出的字符串是 “Domain/Administrator”(Domain域,域用户Administrator) 形式的所以我们需要把用户名和用户账号所属的域的字符串分离开
  string userName = wpname.Substring(j + 1);  //取得分隔符后的用户在域中的身份字符串保存在userName中,然后根据这个用户字符串在数据库中查询到用户相应的访问权限
  string domainName = wpname.Substring(0, j); //取得到分隔符前为止的字符串保存在domainName中
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值