快速业务通道

在ASP.NET应用中集成Windows域帐户来进行权限控制

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
管理的用户帐号,那实际上我就把口令写到了配置文件里面,这样不好。

因为我使用了安全连接,每次用户登录应用的时候,系统自动匹配当前用户登录所使用的域用户名,去链接SQL数据库,这样,实际上你需要给每一个域用户分配访问SQL的权限,这样既麻烦,而且也不是我们想要的。按一般的开发模式,都是采用一个代理帐号去统一链接数据库的。那怎么打开这个代理呢?

<identity impersonate="true" userName="UserName" password="PassWord" />

增加这么一句就打开了代理,实际上每次客户连接应用,都是通过这个指定的代理用户去访问数据库的。到此为止也可以了。但是,这样,即使是在连接数据库字符串里采用了安全连接,可是最后还是把用户口令写道了配置文件里面!这可不是我想要的!接着实验,

<identity impersonate="true" />

把用户名口令从这句里面去掉,但是在哪里去指定这个代理用户呢?

再次修改IIS指定代理用户

建立一个新的应用程序池,右键选择属性,identity用户表示里面,把匿名用户去掉,在下面选择代理用户。

这样每次,应用就会使用你所指定的代理用户去链接数据库。

这样,你既使用了安全连接,有没有把任何用户的口令写在配置文件里面。

当然,这还不算真的完成程序了。例如,如果你需要在应用中显示当前用户身份,而且需要根据用户身份去判断,谁有权限去修改相关记录怎么办?

在代码中调用域用户权限

增加 Using Page.User.Identity 这个引用,在代码重用如下代码来访问域用户身份。

Page.User.Identity.Name

Page.User.Identity.IsAuthenticated

下面的我还没研究,不过难点应该都在上面了 :) 如有错误,欢迎批评指正。

更新:刚才试验了一下,好像IIS对于应用池的代理用户实际上是有特殊规定的,好像向我那样随便的制定一个用户不行。所以我把代理用户身份改回了 Network Service,然后把指定用户加入到Network Service组里,就像安装其他的MS服务程序(SharePoint之类的)一样的配置,这样好像可以了。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号