- 浏览: 1022906 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
几乎所有的系统中都会使用到访问控制和角色管理这样的功能,例如:新建、修改、删除用户和角色,为用户分配角色,管理角色中的用户等等。于是MS在 ASP.NET 2.0开始,实现了这些功能,使得我们在开发中,不需要考虑这方面的内容,把更多的精力投入到业务逻辑的开发中去。从而大大的提高了开发的效率。下面我们 就来学习一下如何使用membership。
1.添加数据库支持
要使用membership首先需要数据库的支持,所以我们第一步就是创建用来存放用户、角色等信息的表结构。别担心,MS早就把创建表的语句写好了,并且还提供了用户界面,让我们点点鼠标就可以创建好所需的结构了。
具体操作如下:进入C:\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx(vs2010
的目录是v4.0.xxxx)这个目录下,找到aspnet_regsql.exe直接双击运行,就会弹出一个界面,直接下一步。第二个界面让我们选择是
添加表结构还是移除,我们当然选择添加,继续下一步。在这个界面中需要填写服务器ip地址以及身份验证信息。在填写完毕后,就可以选择你要将表结构添加到
哪个数据库中了。需要注意的是:如果选择默认,则会创建一个新的名叫aspnetdb的数据库,然后将表结构加入其中。一路下一步就完成了数据库结构的添
加。
2.web.config配置
好了,表结构添加完毕,接下来就是需要在项目中进行一些简单的配置了。我们在vs中新建一个网站,随后再用记事本打开
C:\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\CONFIG\machine.config这个文件,
找到system.web节点下的membership节点,将整个节点复制到我们新建网站的web.config中的system.web节点中。
复制过来的代码如下:
<membership> <providers> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> </providers> </membership>
下面是主要的几个属性的含义:
name :数据提供程序的名称,由于我们是从machine.config复制过来的,所以必须改名,防止重名
type :数据提供程序类型,如果使用的是MSSQL数据库,则保持不变即可,如果使用的是Oracle等其他数据库,则必须自己创建一个类来继承MembershipProvider 抽象基类,重写里边的所有抽象方法,然后把类型写在这里即可。
connectionStringName :该属性必须指定在<connectionStrings >节点中,一个连接字符串的名字。
applicationName :应用程序名 称,membership允许多个应用程序共同使用一个数据库来管理自己的用户、角色信息,各应用程序只需配置不同的applicationName即 可,当然,如果想要多个应用程序使用同一份用户角色信息,只需设置一样的applicationName即可。
requiresUniqueEmail :顾名思义,用户注册时,是否需要提供未注册过的邮箱。
passwordFormat
:密码存储格式,密码保存在数据库中的格式,最常用的有Clear
(不加密)和Hashed
(使用SHA1算法加密)
minRequiredPasswordLength
:最小密码长度。
minRequiredNonalphanumericCharacters :指定有效密码中必须包含的特殊字符的最小数量,就是说不是字母也不是数字的字符的数量,比如+-*/,.什么的,增加密码强度
好了,我们将配置修改一下并添加连接字符串:
<connectionStrings> <add name="ConnectionString" connectionString="server=.;uid=sa;pwd=sa;database=aspnetdb"/> </connectionStrings> <system.web> <membership defaultProvider="mySqlMembershipProvider"> <providers> <add name="mySqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="TestMembership" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> </providers> </membership> </system.web>
上面用黄色高亮字体 标注出来的属性,是为了告诉membership采用我们刚才添加的mySqlMembershipProvider 这个配置,因为machine.config中有一个AspNetSqlMembershipProvider, 我们又在web.config中又添加了一个mySqlMembershipProvider,现在有了两个配置,所以应该使用 defaultProvider 属性指明本网站使用哪个配置。随后又指定了连接字符串配置的名称,一个Email不允许重复注册,最小密码长度为6,不限制密码中必须含有标点符号等配置。
3.ASP.NET身份验证配置
membership算是配置到这里了,但是还没有结束,我们还需要把ASP.NET的身份验证机制配置为Forms身份验证。
补充内容:
ASP.NET一共有三种身份验证方式,分别为:
-
- Forms验证
- Windows验证
- Passport验证
Windows验证是一种把能够访问到IIS的用户认为是已经通过身份验证的用户。可以通过windows自带的身份验证策略来控制哪些页面用户可以访问,哪些不能访问。这是一种最简单的方式,基本不用写多少代码,全部通过配置就可以实现访问的控制。
Passport验证是由微软提供身份验证服务。当然这是收费的。
Forms验证就是在用户登录时,向浏览器中添加一个cookie,然后在用户每次访问时都检测这个cookie,从而达到身份验证的目的。
配置Forms身份验证其实就是把下面代码复制到web.config中去就可以了:
<system.web> <authentication mode="Forms"> <forms loginUrl="Login.aspx" protection="All" timeout="30" name=".ASPXAUTH" path="/" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile"/> </authentication> </system.web>
下面是说明(msdn抄的):
-
loginUrl 指向应用程序的自定义登录页。应该将登录页放在需要安全套接字层 (SSL) 的文件夹中。这有助于确保凭据从浏览器传到 Web 服务器时的完整性。
-
protection 设置为 All ,以指定窗体身份验证票的保密性和完整性。这导致使用 machineKey 元素上指定的算法对身份验证票证进行加密,并且使用同样是 machineKey 元素上指定的哈希算法进行签名。
-
timeout 用于指定窗体身份验证会话的有限生存期。默认值为 30 分钟。如果颁发持久的窗体身份验证 Cookie, timeout 属性还用于设置持久 Cookie 的生存期。
-
name 和 path 设置为应用程序的配置文件中定义的值。
-
requireSSL 设置为 false 。该配置意味着身份验证 Cookie 可通过未经 SSL 加密的信道进行传输。如果担心会话窃取,应考虑将 requireSSL 设置为 true 。
-
slidingExpiration 设置为 true 以执行变化的会话生存期。这意味着只要用户在站点上处于活动状态,会话超时就会定期重置。
-
defaultUrl 设置为应用程序的 Default.aspx 页。
-
cookieless 设置为 UseDeviceProfile ,以指定应用程序对所有支持 Cookie 的浏览器都使用 Cookie。如果不支持 Cookie 的浏览器访问该站点,窗体身份验证在 URL 上打包身份验证票。
-
enableCrossAppRedirects 设置为 false ,以指明窗体身份验证不支持自动处理在应用程序之间传递的查询字符串上的票证以及作为某个窗体 POST 的一部分传递的票证。
需要说明一下的是 LoginUrl 和 DefaultUrl 属性: LoginUrl 指向登录页面,当ASP.NET判断出该用户请求的资源不允许匿名访问,而该用户未登录时,ASP.NET会自动跳转到LoginUrl所指向的页面,当登录成功后,则跳转回原来请求的页面。 DefaultUrl 指向默认页面。当我们直接访问登录页面,并登录成功后,这时ASP.NET会跳转到DefaultUrl指向的页面。其他的选项不写都可以,因为有默认值。
写blog也真不是一件简单的事情,相信自己能够坚持下去!先写到这里,明天继续
发表评论
-
DotNet 资源大全(下)
2018-07-12 10:18 585HTML 和 CSS(HTML and CSS) ... -
DotNet 资源大全(上)
2018-07-12 10:17 732API 框架 NancyF ... -
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1399当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 863分布式系统调用链监 ... -
IIS 优化
2017-06-28 21:57 1677通过对IIS7的配置进行优化,调整IIS7应用池的队列长度, ... -
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
2017-06-28 21:39 2076读在最前面: 1、本文以IIS8,Windows Se ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1305随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
查看IIS上面的每个网站分别用了多少内存
2017-05-05 12:57 877IS服务器上面运行了多个网站,想查看每个网站具体使用了系统多 ... -
Asp.net WebApi版本控制
2017-03-06 10:34 831关web api的版本控制网上有很多,如Web API 版本 ... -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
2016-12-19 10:42 1012RabbitMQ .net客户端通过自定义的Binding ... -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
2016-12-19 10:42 1059RPC是在计算中是一种 ... -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
2016-12-19 10:41 976前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一 ... -
.Net下RabbitMQ的使用(6) -- 持久化
2016-12-19 10:41 754消息的持久化是消息 ... -
.Net下RabbitMQ的使用(5) -- 路由机制
2016-12-19 10:41 534理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的 ... -
.Net下RabbitMQ的使用(4) -- 订阅和发布
2016-12-16 10:26 1146消息的订阅和发布是使 ... -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
2016-12-16 10:23 2494在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介 ... -
.Net下RabbitMQ的使用(2) -- 发送接收消息
2016-12-16 10:20 1254在安装和配置完成Rabbit ... -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
2016-12-16 10:12 6081. 历史 RabbitMQ是 ... -
RabbitMQ 安装和监控
2016-12-16 10:14 864在Windows上安装Rabbit MQ 指南,最好的是这 ... -
Autofac创建实例的方法总结
2016-12-07 14:54 5561、InstancePerDependency 对每一个依 ...
相关推荐
Forms鉴别提供的是一种验证用户的方法,而ASP.NET Membership的作用是表示用户的信息。 ASP.NET Membership使用的是提供器模式。ASP.NET Framework内包含了两个Membership提供器: q SqlMembershipProvider——...
asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理...
ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP...
ASP.NET 身份验证方式是 ASP.NET 应用程序中的一种身份验证机制,它用于验证客户端的身份,以确保只有经过身份验证的用户可以访问 ASP.NET 应用程序。ASP.NET 身份验证方式可以分为三种:匿名身份验证、基本身份...
- **改进的安全性**:ASP.NET4提供了增强的安全特性,包括改进的身份验证和授权机制,有助于保护Web应用免受攻击。 - **更好的性能**:通过优化的编译器和运行时环境,ASP.NET4能够提供比以往更快的执行速度。 - **...
本资源“ASP.NET 1.1入门经典——Visual C#.NET 2003编程篇”提供了一个学习ASP.NET 1.1的基础教程,特别关注了使用C#语言进行编程的方法。Visual C#.NET 2003是.NET Framework 1.1时代的集成开发环境(IDE),它为...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part05
- ASP.NET提供了身份验证(Authentication)和授权(Authorization)机制,如Windows身份验证、Forms身份验证等。 - 防止XSS和CSRF攻击的安全最佳实践也是ASP.NET开发的重要方面。 8. **配置与部署** - Web.config...
《Asp.Net2.0 完全开发指南——基于VB》随书光盘是一个压缩文件,其中包含了关于Asp.Net2.0技术的详细学习资料,特别针对使用Visual Basic(VB)编程语言的开发者。Asp.Net是微软推出的一个强大的Web应用程序框架,...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part11
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part09
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part10
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part12
此外,ASP.NET的部署和配置也是一个关键环节,IIS服务器设置、应用程序池配置、错误处理机制等都会影响系统的稳定性和响应速度。 总的来说,《ASP.NET开发在线英语自学系统——课程及自测管理的设计》涵盖了Web应用...
7. ** Membership 和 Role Management **:ASP.NET 2.0引入了会员(Membership)和角色(Role)管理,用于用户身份验证和授权,简化了安全性的实现。 8. **配置管理**:ASP.NET 2.0的配置系统允许开发者在不修改...
圣殿祭司的ASP.NET.2.0.开发详解——使用C# 共四部分
在Asp.Net开发中,HttpHandler是核心组件之一,它负责处理...在"Asp.Net底层解析(五)——HttpHandler详解"的博客中,作者通过实际的测试代码帮助读者深入理解了这一概念,为ASP.NET开发提供了宝贵的知识和实践经验。
ASP.NET Core微服务(一)——【完整API搭建及访问过程】——sql脚本
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part02