- 浏览: 1024285 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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
不知道什么原因,最近总是头晕脑胀,做什么事情感觉都不在状态,再加上工作忙,觉得好累~不过不管怎么说,写博客一定要坚持,最少一月一篇~这算是给自己的任务吧。
回到正题,前面说过如何去配置Membership,以及如何去使用Asp.net自带的登陆控件。这次说明一下如何不使用Asp.net自带的登陆控件,而通过编写代码的方式去完成相应的功能。
要使用Membership我们需要引入System.Web.Security 这个命名空间。在这个命名空间中有这么几个常用的类:
- Membership
- Roles
首先来介绍第一个Membership类,Membership类是一个静态类,提供了所有的对于用户方面的操作,比如注册用户,删除用户,取得用户列表,根据email查找用户等等
方法很多,但是大多数都很简单,我们挑两个比较麻烦点的来详细解释一下:
Membership.CreateUser方法的功能,看名字就知道是创建用户,这个方法有4个重载:
public static MembershipUser CreateUser(string username, string password); public static MembershipUser CreateUser(string username, string password, string email); public static MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, out MembershipCreateStatus status); public static MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status);
这4个重载的返回值都是MembershipUser 类,MembershipUser 类其实就是一个实体类,不过里边带了一些方法,比如取得密码,修改密码等方法。至于该使用哪个重载,还记得前面的web.config配置么?比如requiresQuestionAndAnswer 设置是否需要密码找回问题和答案,如果该设置为true,那么就得使用第三个,或者第四个重载,提供问题和答案了。isApproved 这个参数表示创建的用户是否激活。最后一个MembershipCreateStatus 是一个枚举,用out关键字修饰,用来获得创建用户的状态,比如:MembershipCreateStatus.Success 说明创建用户成功,MembershipCreateStatus.InvalidEmail 说明电子邮件的格式错误等等。providerUserKey 是一个Guid类型的数据,用来指定该用户的UserId。
另一个需要介绍的就是public static bool ValidateUser(string username, string password);这个方法,其实看名字和参数大家都应该猜到这个方法的作用了,两个参数分别是用户名和密码,返回值为是否登录成功。剩下的方法都非常 的简单了。大家应该一看就明白,不过需要提一下的是:ValidateUser方法经常和FormsAuthentication类配合起来使 用,FormsAuthentication类提供了一系列静态方法,用来管理Forms身份验证服务。
FormsAuthentication类中,常用方法有:
public static string HashPasswordForStoringInConfigFile(string password, string passwordFormat); public static void SetAuthCookie(string userName, bool createPersistentCookie); public static void RedirectFromLoginPage(string userName, bool createPersistentCookie);
第一个HashPasswordForStoringInConfigFile方法,作用很简单,将传入的password按照 passwordFormat指定的哈希算法生成哈希密码然后返回,passwordFormat的取值可以是"MD5”或是"SHA1"这两个选择。
第二个SetAuthCookie方法,向客户端发送身份验证的票据。userName是登陆的用户名,createPersistentCookie用来告诉Asp.net是否创建一个持久的Cookie,让用户下次访问能够免于登陆。
第三个RedirectFormLoginPage方法,将经过身份验证的用户重定向回最初请求的 URL 或默认 URL。
通常就是这样的用法:
if (Membership.ValidateUser("zhangsan", "123123")) { FormsAuthentication.RedirectFromLoginPage("zhangsan", false); }
Roles类同样是一个静态类,里边封装了所有对于角色相关的方法。比如:创建角色、将用户添加到角色,删除角色等常用操作。使用Roles类要注意:web.config配置中roleManager节必须正确配置,并且enabled属性必须等于true才可以使用。
Roles类中,需要说一下的是AddUserToRole这个方法,这个方法通常和Membership.CreateUser在一起使用,比如:
if (Membership.CreateUser("zhangsan", "123123")) { //创建用户成功,给zhangsan分配User角色 Roles.AddUserToRole("zhangsan", "User"); }
这样,在创建zhangsan这个用户之后,顺便给zhangsan分配了User这个角色。在后面,就可以再配置文件中做如下配置:
<configuration> <appSettings/> <connectionStrings/> <system.web> <authorization> <allow roles="User"/> <deny users="?"/> </authorization> </system.web> </configuration>
ok.API的部分就介绍到这里了
发表评论
-
DotNet 资源大全(下)
2018-07-12 10:18 590HTML 和 CSS(HTML and CSS) ... -
DotNet 资源大全(上)
2018-07-12 10:17 740API 框架 NancyF ... -
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1409当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 866分布式系统调用链监 ... -
IIS 优化
2017-06-28 21:57 1685通过对IIS7的配置进行优化,调整IIS7应用池的队列长度, ... -
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
2017-06-28 21:39 2081读在最前面: 1、本文以IIS8,Windows Se ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1311随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
查看IIS上面的每个网站分别用了多少内存
2017-05-05 12:57 881IS服务器上面运行了多个网站,想查看每个网站具体使用了系统多 ... -
Asp.net WebApi版本控制
2017-03-06 10:34 833关web api的版本控制网上有很多,如Web API 版本 ... -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
2016-12-19 10:42 1014RabbitMQ .net客户端通过自定义的Binding ... -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
2016-12-19 10:42 1060RPC是在计算中是一种 ... -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
2016-12-19 10:41 977前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一 ... -
.Net下RabbitMQ的使用(6) -- 持久化
2016-12-19 10:41 757消息的持久化是消息 ... -
.Net下RabbitMQ的使用(5) -- 路由机制
2016-12-19 10:41 535理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的 ... -
.Net下RabbitMQ的使用(4) -- 订阅和发布
2016-12-16 10:26 1149消息的订阅和发布是使 ... -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
2016-12-16 10:23 2497在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介 ... -
.Net下RabbitMQ的使用(2) -- 发送接收消息
2016-12-16 10:20 1257在安装和配置完成Rabbit ... -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
2016-12-16 10:12 6101. 历史 RabbitMQ是 ... -
RabbitMQ 安装和监控
2016-12-16 10:14 868在Windows上安装Rabbit MQ 指南,最好的是这 ... -
Autofac创建实例的方法总结
2016-12-07 14:54 5581、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.NET Core微服务(一)——【完整API搭建及访问过程】——sql脚本
- **改进的安全性**:ASP.NET4提供了增强的安全特性,包括改进的身份验证和授权机制,有助于保护Web应用免受攻击。 - **更好的性能**:通过优化的编译器和运行时环境,ASP.NET4能够提供比以往更快的执行速度。 - **...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part05
本资源“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#.part11
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part09
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part10
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part12
《Asp.Net2.0 完全开发指南——基于VB》随书光盘是一个压缩文件,其中包含了关于Asp.Net2.0技术的详细学习资料,特别针对使用Visual Basic(VB)编程语言的开发者。Asp.Net是微软推出的一个强大的Web应用程序框架,...
本文将深入探讨ASP.NET WebAPI2如何实现基于Token的令牌身份验证。 首先,我们需要理解Token的身份验证原理。这种机制下,用户登录后,服务器会生成一个唯一的Token,这个Token包含了一些关于用户的信息,经过加密...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part02
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part06
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part03
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part04
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part08