ASP.NET基于角色的窗体安全认证机制
日期:2007年10月3日 作者: 查看:[大字体 中字体 小字体]-
说明:两个月前我刚学 ASP.NET, 在 codeproject.com 看到题目叫 Role-based Security with Forms Authentication 的文章,觉得很有帮助。当时就想翻译成中文。不过直接翻译实在没意思,这两天我参照 Heath Stewart的这篇文章,并且根据自己的理解,把它按照自己的想法和表达方式写成中文。附带上自己为这篇文章做的一个演示的web应用程序。
如果有理解错误的地方,欢迎来信指出或发表评论。附:垃圾邮件实在讨厌,请高抬贵手。
概要:
ASP.NET 提供了基于角色(即 Roles)的认证机制,然而它对角色的支持是不完全的。本文试图通过一些例子来说明如何实现和使用这种基于角色的认证机制。简介:
ASP.NET 中窗体认证是一个功能非常强大的特性,只需要很少的代码就可以实现一个简单的平台无关的安全认证系统。
但是,如果你需要一个更复杂更有效的认证机制,那么你就要把众多用户分成用户群组,以利用它的灵活性。Windows 集成认证提供了这种认证机制,但它使用的是 NTLM,即Windows NT LAN Manager,因而它不是跨平台的。现在越来越多的人使用 Linux 系统,而 Mozilla Forefox 浏览器用户也越来越多,我们肯定不能把这些人拒之门外,因此我们寻求另外的认证机制。有两个选择:一是为网站划分多个区域,提供多个登录页面,强迫用户一个一个的去注册和登录;二是把用户分组,并且限制特定用户组对某页面或者某区域访问的权限。后者当然是更好的选择。通过分配角色给各个用户,我们能够实现这种功能。微软为.NET平台留下了窗体认证中基于角色的认证机制,但是我们必须自己去实现它。本文力求覆盖窗体认证中基于角色的认证机制的一些基本的东西,比如它的概念,它的实现,如何在Web应用程序中应用等。
必要准备:
我们首先要建立一个数据库,一个Web应用项目,几个不同安全级别的机密目录,以及几个ASP.NET页面。当然你也可以在你现有的Web应用项目中添加这些。1、创建数据库
首先要选择你需要使用的数据库管理系统 DBMS。本文使用 SQL Server 2000。
在实际应用项目的数据库中,一般都会有用户数据表 Users,它可能包括用户唯一标记:UserID,用户名:UserName,密码:PassWord,用户的邮件地址:Email,用户所在城市:City,用户登录次数 LoginCount 等。可以通过创建一个 UserInRoles 数据表(一般可以包括两个字段,用户名:UserName,用户角色:UserRoles)来实现为用户分配角色。
为了简单,我只创建一个 Users 数据表,它有3个字段,用户名 UserName,密码 Password,用户角色 UserRoles。创建表之前,你要选择数据库,或者创建一个新的数据库。要创建一个新的命名为WebSolution的数据库 ,只需要简单的SQL语句:
程序代码
Create DATABASE WebSolution
GO要选择一个叫msdb的数据库,可以使用SQL语句:
程序代码
USE msdb
GO
接下来,我们创建刚才提到的 Users 数据表,SQL 脚本如下:程序代码
Create TABLE Users
(
UserName nvarchar(100) CONSTRAINT PK_UserName PRIMARY KEY,
Password nvarchar(150),
UserRoles nvarchar(100)
)可以为这个表创建索引 Credentials,SQL语句如下:
程序代码
Create INDEX Credentials ON Users
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 下一页
-
- ASP.NET基于角色的窗体安全认证机制 相关文章:
- ·关于三级片和A片的区分标准
- ·关于局域网限制网速的问题
- ·关于web.xml配置的详细说明
- ·关于oracle日期函数的介绍和使用
- ·UDT协议-基于UDP的可靠数据传输协议
- ·关于多媒体控制器驱动无法安装问题
- ·设计一个基于CSS的网页模板
- ·基于IPSec的VPN技术原理于实现
- ·关于交换机的工作原理以及种类的区分
- ·关于游戏和QQ在VISTA下无法运行的问题的最终解决方法和使用智能ABC的方法
- ASP.NET基于角色的窗体安全认证机制 相关软件
- ·新万能主板驱动 适用于所有主板
- ·适用于 Windows XP/2003 的“Windows 边栏”
- ·天女于珍
- ·关于加密和安全 V0.94
- ·敢于梦想
- ·20以内加法(适用于演示)
- ·关于中国
- ·霜叶红于二月花--徐霞村纪传
- ·关于生命与生活的寓言
- ·敢于梦想1.10版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·C#编写的windows计算器-源代码
- ·用C#写计算器程序
- ·c#操作word表格
- ·AspNetPager分页控件--使用方法
- ·C#導出Excel源碼
- ·ASP.NET技巧:GridView控件自定义分页详解
- ·图片保存到数据库和从数据库读取图片并显示(c#)
- ·ASP.NET购物车的实现及结算处理
- ·客户端回调实现gridView无刷新分页
- ·ASP.NET中数据库的操作初步----增加、删除、修改
- ·C#获取本地计算机名IP,Mac地址
- ·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
- ·VS 2008和.NET 3.5 Beta2新特性介绍
- ·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
- ·Asp.net文件上传操作
- ·通常C#面试题
- ·身份证号码15位升18位(C#)
- ·ASP.NET无限级分类的非递归实现(存储过程版)
- ·asp.net开发wap程序必备:识别来访手机品牌型号
- ·ASP.NET一个最简单的会员登陆代码
特别推荐
- ·ASP.NET之上传文件管理策略
- ·ASP.NET程序中常用的三十三种代码
- ·ASP.Net中保护自定义的服务器控件
- ·C#设计的一个向导程序(Wizard)框架
- ·.net中即时消息发送的实现……
- ·ASP.NET动态创建控件之绝境求生
- ·.NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)
- ·C#中水晶按钮的程序生成
- ·日历函数单元
- ·图片保存到数据库和从数据库读取图片并显示(c#)
- ·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
- ·C#中四种进程或线程同步互斥的控制方法
- ·[C#]解决读写包含汉字的txt文件时乱码的问题
- ·AspNetPager分页控件--使用方法
- ·六步使用ICallbackEventHandler实现无刷新回调
- ·从 ASP.NET 服务器控件插入客户端脚本
- ·C#導出Excel源碼
- ·Asp.net直接保存文件到客户端
- ·如何在上传的图片上写字
- ·Access 通用数据访问类(asp.net 2.0 c#)
