在ASP.NET应用中集成Windows域帐户来进行权限控制
企业应用程序采用域用户来代替独立的用户管理模块的好处很多。 程序本身不需要单独编写用户帐号管理模块 与域用户集成,用户不需要单独记忆用户名口令,可以实现无缝登录 采用与用户方案安全性提升到域用户安全级别 其他好处多多 首先需要配置IIS: 为你的应用单独建立一个web虚拟目录,右键选择属性里的目录安全,权限与访问控制,把“打开匿名访问”不选,仅仅选择“集成Windows权限认证”,别的都不要选,确定。 集成域用户来控制用户访问的途经有两种,一种是利用NTFS权限控制表,缺点是每次转移应用之后,需要逐个设置目录访问权限。另外一种是通过配置web.config文件,通过URL来控制,好处是直接修改配置文件就可以了,不需要每次发布应用时变换一次目录就修改一次。下面我就主要介绍一个后者。 划应用目录树: 根目录的权限设置覆盖子目录的设置,把管理页面单独放在一个路径下,举例如下: \root\ \root\admin \root\sales \root\user 修改配置文件: 在需要进行权限配置的目录下面,分别建立web.config文件。root下面肯定需要一个配置文件了,在本例中由于admin路径下放置了管理页面,因此我在admin下面也建立了一个web.config配置文件。 root下的web.config配置文件的和权限相关的内容如下: <?xml version="1.0"?> admin目录下也增加一个web.config文件 <?xml version="1.0"?> 首先,先解释一下admin下面的这个配置文件,我允许domainname\username1访问这个管理目录,而禁止任何其他的用户来访问这些功能页面。 下面,再接是一下root下面的这个配置文件,我增加了一个链接数据库的字符串,采用的是MS推荐的安全连接,没有使用sa之类的SQL管理的账户。 authentication mode="windows" 的意思是集成域用户,这句话是打开应用支持域用户的关键。 allow roles=",,," 列表里面我规定了可以访问root的用户,每个用户之间用逗号分隔,这里可以指定服务器本机用户,也可以指定域用户,或者域用户组 deny users=",,," 列表里我规定了禁止所有用户访问(允许列表里的用户除外) 以上这两个类表可以使用的通配符有 ? 匿名用户, * 所有用户 到目前为止,其实就已经算是完成了,由于我前面链接数据库所使用的是安全连接,没有使用sa,如果使用了sa,实际上可以到此为止了。但是如果使用sa或者其他SQL |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |