- 浏览: 424662 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
如何在ASP.NET应用中集成Windows域帐户来进行权限控制
企业应用程序采用域用户来代替独立的用户管理模块的好处很多。 |
首先需要配置IIS:
为你的应用单独建立一个web虚拟目录,右键选择属性里的目录安全,权限与访问控制,把“打开匿名访问”不选,仅仅选择“集成Windows权限认证”,别的都不要选,确定。
集成域用户来控制用户访问的途经有两种,一种是利用NTFS权限控制表,缺点是每次转移应用之后,需要逐个设置目录访问权限。另外一种是通过配置 web.config文件,通过URL来控制,好处是直接修改配置文件就可以了,不需要每次发布应用时变换一次目录就修改一次。下面我就主要介绍一个后 者。
划应用目录树:
根目录的权限设置覆盖子目录的设置,把管理页面单独放在一个路径下,举例如下:
\root\
\root\admin
\root\user
修改配置文件:
在需要进行权限配置的目录下面,分别建立web.config文件。root下面肯定需要一个配置文件了,在本例中由于admin路径下放置了管理页面,因此我在admin下面也建立了一个web.config配置文件。
root下的web.config配置文件的和权限相关的内容如下:<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="APPConnectionString" connectionString="Data Source=MachineName;Initial Catalog=DatabaseName;Integrated Security=SSPI"
</connectionStrings>
<system.web>
<authentication mode="Windows" />
<!--<identity impersonate="true" userName="UserName" password="PassWord" />-->
<identity impersonate="true"/>
<authorization>
<allow roles="UserName,domainname\username1,domainname\username2,domainname\usergroup1" />
<deny users="*"/>
</authorization>
</system.web>
</configuration>
admin目录下也增加一个web.config文件<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="domainname\username1" />
<deny users="*"/>
</authorization>
</system.web>
</configuration>
首先,先解释一下admin下面的这个配置文件,我允许domainname\username1访问这个管理目录,而禁止任何其他的用户来访问这些功能页面。
下面,再接是一下root下面的这个配置文件,我增加了一个链接数据库的字符串,采用的是MS推荐的安全连接,没有使用sa之类的SQL管理的账户。
authentication mode="Windows" 的意思是集成域用户,这句话是打开应用支持域用户的关键。
allow 列表里面我规定了可以访问root的用户,每个用户之间用逗号分隔,这里可以指定服务器本机用户,也可以指定域用户,或者域用户组
deny 列表里我规定了禁止所有用户访问(允许列表里的用户除外)
以上这两个类表可以使用的通配符有 ? 匿名用户, * 所有用户
到目前为止,其实就已经算是完成了,由于我前面链接数据库所使用的是安全连接,没有使用sa,如果使用了sa,实际上可以到此为止了。但是如果使用sa或者其他SQL管理的用户帐号,那实际上我就把口令写到了配置文件里面,这样不好。
因为我使用了安全连接,每次用户登录应用的时候,系统自动匹配当前用户登录所使用的域用户名,去链接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
在ASP.NET中, 启用Windows集成验证,这样我们就有了登陆网页的用户名和密码的哈希版本,但是我们是不能直接使用的,因为是密码的哈希版本,而不是密码本身。
比如:
"LDAP://22.11.21.232:389/OU=ou0000_team,OU=ou0000_unit,OU=ou0000_division,DC=bocadtest,DC=com",
"administrator", "admin",System.DirectoryServices.AuthenticationTypes.Secure);
我们不能使用此构造函数来传入用户名和密码,所以只能把此ASP.NET运行线程的安全上下文传递过去,这样的话,我们需要在Web.config中,加入下面的标记:
<authentication mode="Windows" />
<identity impersonate="true"/>
这样的话,就可以把安全上下文传递下去了,使用下面的构造函数:
"LDAP://22.11.21.232:389/OU=ou0000_team,OU=ou0000_unit,OU=ou0000_division,DC=bocadtest,DC=com");
这样就可以用用户的权限来操作active directory了。当然如果使用带用户名密码的构造函数也可以,因为用户名和密码已经不起作用。
发表评论
-
登录时记住用户名密码的实现方式
2019-06-12 15:11 2956登录的时候记住用户 ... -
CAS 实现单点登录 .NET MVC
2016-05-24 17:14 1070http://www.cnblogs.com/woxpp/p ... -
.NET开发邮件发送功能的全面教程(含邮件组件源码)
2015-03-31 09:43 1085原文地址:http://www.cnblogs.com/he ... -
开发Web组合
2015-01-04 11:39 5791、数据库操作 ORM-Dapper 2、前台界面布局采 ... -
基于 Bootstrap 构建的网站
2014-12-14 14:12 603文档,下载地址:http://v3.bootcss.com ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 725以下内容对于使用WIN2012 部署V9的时候使用。 ... -
C# 连接Oracle(利用ODP.net,不安装oracle客户端)
2014-07-11 09:37 1655C# 连接Oracle(利用ODP.net,不安装oracl ... -
C# Attribute 特性,过期特性
2014-05-27 15:18 1773通过下列过程将属性应用到代码元素。 通过从 .NE ... -
.NET画实时直方图
2011-12-30 09:37 870using System; using System.Col ... -
设置combobx选中项
2011-12-21 15:20 999cbRole.SelectedIndex = cbRole.I ... -
文档树状结构化目录管理方法
2011-12-20 09:50 2088本文适用于附件(各类文档、图片和压缩包等,下同)比较多的 ... -
.StringTemplate替换模板
2011-11-03 10:19 1210官方下载 www.StringTemplate. ... -
WCF-IErrorHandler
2011-10-11 16:30 1002使用 IErrorHandler 接口,我们可以更深入地 ... -
ADODB.Stream instead of Scripting.FileSystemObject.
2011-07-04 08:55 1214In a Silverlight 4 OOB App (eve ... -
Scripting.FileSystemObject对象的详细技巧指南
2011-07-03 23:39 1013Scripting.FileSystemObject对象的 ... -
Stream 和 byte[] 之间的转换
2011-07-02 16:52 1038/* - - - - - - - - - - - - - ... -
常用正则表达式
2011-06-15 20:17 762正则表达式用于字符 ... -
DynamicMethod 类
2011-05-11 22:51 1117public delegate String MyMetho ... -
一个通用的快速反射方法(A General Fast Method Invoker)
2011-04-13 22:01 1489普通反射方法 MethodInfo methodIn ... -
C#操作IIS(转)可以写一个工具自己配置网站
2011-03-24 21:08 2232using System; using System.Dir ...
相关推荐
SaaS 应用程序的租户和版本(包)管理 订阅管理和定期付款 PayPal & Stripe集成 付款的基本发票 用于版本、租户和收入统计的仪表板 单个数据库、每个租户的数据库和混合数据库支持 自定义租户徽标和 CSS 支持 可以在...
了解如何使用Windows帐户进行身份验证来控制对.NET应用程序的访问。 与Active Directory集成,并向Windows帐户授予角色和权限。 借助.NET反射机制,无需添加代码即可定义权限。
源码名称:网软分类信息系统asp.net正式版下载分类信息网站网页模板 源码版本:V2020 建议分类:源码下载/asp.net源码/分类信息 联系EMAIL:38306293@qq.com 软件网站:http://www.wrzc.net 演示网站:...
源码应用平台:asp.net+mssql 界面预览:http://download.wrzc.net/flnet01wygkcn.jpg 软件介绍:后台管理: http://你的网址/admin 进入,帐户/密码:admin/admin 网软志成分类信息管理系统介绍 网软志成分类信息...
源码应用平台:asp.net+mssql 软件介绍:后台管理: http://你的网址/admin 进入,帐户/密码:admin/admin 网软志成分类信息管理系统介绍 网软志成分类信息网系统地方门户风格版,是定位于中高端市场的分类信息网...
在大多数的一对多的系统设计中会包含一些常用的重复的功能代码,例如网络通信机制,客户端版本控制,帐户控制管理,密码修改,公告管理,服务器配置,各种常用窗口等等,而且大多数的中小型系统只是需要到简单的权限...
除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的...
分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类...
安装SQL Sever 2005及其组件 因为SQL Server 2005软件安装包中有ASP.NET2.0、Microsoft Windows NET Framework2.0、Microsoft Windows Installer3.1、Microsoft 数据访问组件(MAC)2.8 SPI。 3、 设置账户 在"实例...
源码应用平台:asp.net+mssql 软件介绍:后台管理: http://你的网址/admin 进入,帐户/密码:admin/admin 仿百姓网模板分类信息系统下载介绍 仿百姓网模板分类信息系统下载是定位于中高端市场的分类信息网管理...
用户登录后自动返现。 2011-06-28(v3.1.2)新加入返现宝功能。 2011-07-18(v3.1.3)搜索结果分页问题;加入预留手机号,防止冒领。...2011-08-04(v3.2) 集成... 主机环境要求:asp.net2.0 access(虚拟主机可写权限)
Windows Server 2000 / Windows Server 2003:添加Internet来宾帐户(IUSR_Hostname)读取和运行、读取权限。 2). Windows XP::添加Users组的读取和运行、读取权限。 安装成功后,请通过 FTP 删除安装程序install...
功能超强的.net新闻系统,可以轻松定制此系统的各项信息(如网页标题、页面颜色、页眉、页脚等),支持Access数据库和Sql Server数据库,并且使用工厂的设计模式,对Access和Sql Server这两种不同的数据库都进行了...
Windows Server 2000 / Windows Server 2003:添加Internet来宾帐户(IUSR_Hostname)读取和运行、读取权限。 2). Windows XP::添加Users组的读取和运行、读取权限。 安装成功后,请通过 FTP 删除安装程序install...
旅游网站管理系统是基于微软 .Net 平台开发的旅游管理系统,它集成了酒店...对SQL注入攻击进行过滤、对密码进行了不可逆加密处理,提供数据库备份功能、对管理员权限的自由分配,在方方面面保证了系统的安全和稳定。
管理员进入登录后,可对帐户进行管理,包括添加管理员帐户、修改管理员帐户、删除管理员帐户和对帐户进行权限设置。 博客用户通过前台登录后,可对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片...
· 采用ASP+ACCESS/ASP+MS SQL构建 · 国内首个采用30位CFS编码+32位MD5编码加密 · 全面支持在线支付、手机支付、声讯支付,支付完成全自动开通会员 · 人性化的后台管理配合多样式广告设置(首页广告,漂浮广告,...
友情链接管理——添加、修改、删除、审核、禁用友情链接中的站点 ------------------- 执行sql——直接在线对数据库进行执行sql查询 服务器参数——显示服务器的详细参数 系统日志——记录非法登录日志
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...