首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net 用户验证(自定义IPrincipal和IIdentity)

Asp.Net 用户验证(自定义IPrincipal和IIdentity) 2008-12-7 作者: 张子阳 分类: Asp.Net 引言 前一段时间有两个朋友问我,为什么在HttpModule...实际上,我们可以自定义一个IPrincipal和IIdentity来完成,接下来就来看一下。...自定义IPrincipal和IIdentity 不管是在Windows上还是在Web上,.Net都使用这两个接口来实现用户的身份验证。...从这个角度上来看,自定义IPrincipal和IIdentity并没有太大的意义。 这里,我们最好是定义一个自己的类型来承载用户数据,下面我们就看下如何完成。...总结 在这篇文章中我们看到了如何使用Asp.Net内置机制实现用户验证的功能,并且通过FormsAuthenticationTicket的UserData属性、自定义IPrincipal和IIdentity

1.7K31
您找到你想要的搜索结果了吗?
是的
没有找到

从两个重要的概念谈起:Identity与Principal

、服务安全上下文中的身份 一、IIdentity 在.NET的安全应用编程接口中,身份通过System.Security.Principal.IIdentity接口表示。...{ get; } 5: string Name { get; } 6: } 通过IIdentity表示的身份是基于某种认证类型的,不同类型的认证往往对应于不同的身份类型。...以ASP.NET认证为例,如果我们采用Forms认证,那么认证后的身份通过一个FormsIdentity对象表示。...如果你对ASP.NET的安全有一定的了解,应该知道我们可以对IIS进行相应的配置是ASP.NET应用支持匿名用户。也就是说,用户无需提供具体的用户凭证,而是以匿名的方式登录到ASP.NET站点中。...如果我们采用自定义的认证方式,是否意味着我们也需要定义一个实现了IIdentity接口的类型呢?实际上是不需要的,我们可以直接使用GenericIdentity这个类型。

720100

ASP.NET Roles授权

目录: 一、 ASP.NET Roles提供程序 二、 ASP.NET Roles授权与认证的无关性 三、 ASP.NET Roles授权 在ServiceAuthorizationBehavior...中的设定 一、ASP.NET Roles提供程序 和Membership一样,Roles也是ASP.NET一个重要的提供程序,旨在解决对角色的维护和基于角色的授权。...而ASP.NET默认提供了如下三个具体的RoleProvider,它们同时也体现了角色和授权信息的三种不同的存储形式。如果它们还不能满足你的具体授权要求,你还可以自定义RoleProvider。...比如说,如果你使用的数据库是Oracle,你可以参考SqlRoleProvider自定义一个OracleRoleProvider。...1: IIdentity identity1 = Thread.CurrentPrincipal.Identity; 2: IIdentity identity2 = ServiceSecurityContext.Current.PrimaryIdentity

1.1K70

.net中的认证(authentication)与授权(authorization)

/角色识别",好比"管理员用户"登录windows后,能安装软件、修改windows设置等所有操作,而Guest用户登录后,只有做有限的操作(比如安装软件就被禁止了).  .net中与"认证"对应的是IIdentity...Identity { get; } bool IsInRole(string role); } } 应该注意到:IPrincipal接口中包含着一个只读的IIdentity...用Membership/Role做过asp.net开发的朋友们,看到这二个接口的定义,应该会觉得很眼熟,想想我们在Asp.Net页面中是如何判断用户是否登录以及角色的?...True 一切正常,没什么大不了,但Console默认只是一个单线程的程序,也没有丰富的GUI界面,所以...这个只不过是热身,看下接口定义的几个方法是否管用而已。...这就是webform与winform不同的地方,asp.net默认的表单认证方式是Windows,所以程序一运行,asp.net就把windows当前的登录用户视为已经登录了,因此我们得改变asp.net

1.6K100

ASP.NET Roles授权

目录: 一、 ASP.NET Roles提供程序 二、 ASP.NET Roles授权与认证的无关性 三、 ASP.NET Roles授权 在ServiceAuthorizationBehavior...中的设定 一、ASP.NET Roles提供程序 和Membership一样,Roles也是ASP.NET一个重要的提供程序,旨在解决对角色的维护和基于角色的授权。...而ASP.NET默认提供了如下三个具体的RoleProvider,它们同时也体现了角色和授权信息的三种不同的存储形式。如果它们还不能满足你的具体授权要求,你还可以自定义RoleProvider。...比如说,如果你使用的数据库是Oracle,你可以参考SqlRoleProvider自定义一个OracleRoleProvider。...1: IIdentity identity1 = Thread.CurrentPrincipal.Identity; 2: IIdentity identity2 = ServiceSecurityContext.Current.PrimaryIdentity

974100

ASP.NET MVC 随想录—— 使用ASP.NET Identity实现基于声明的授权,高级篇

关于ASP.NET Identity 的基础知识,请参考如下文章: ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇 ASP.NET MVC 随想录——探索ASP.NET...对于ASP.NET MVC应用程序,通过自定义AuthorizeAttribute,声明能够被灵活的用来对指定的Action 方法授权访问,不像传统的使用角色授权那么单一,基于声明的授权更加丰富和灵活,...Identity 已经很好的集成到ASP.NET 平台中,而HttpContext.User.Identity 属性返回一个 IIdentity 接口的实现,而当与ASP.NET Identity 结合使用时...一个更加直接和灵活的方法是通过创建一个自定义的授权过滤器特性来实现,如下展示: public class ClaimsAccessAttribute:AuthorizeAttribute {...} ClaimsAccessAttribute 特性继承自AuthorizeAttribute,并Override了 AuthorizeCore 方法,里面的业务逻辑是当用户验证成功并且IIdentity

2.3K80

ASP.NET-框架分类与详解

一、ASP.NET框架概述ASP.NET是由微软公司推出的一种基于.NET框架的服务器端Web应用程序开发技术。它提供了丰富的工具和框架,用于开发各种规模的Web应用程序和服务。...它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),实现了逻辑层和表示层的分离。...App_Start:存放配置文件,例如路由配置文件(RouteConfig.cs)。③ 示例代码cshtml 页面:<!...App_Start:存放Web API的配置文件,例如路由配置文件(WebApiConfig.cs)。...Web Forms采用事件驱动的编程模型- 提供丰富的服务器控件- 自动化的页面生命周期管理- 适用于快速开发和构建功能丰富的Web应用程序ASP.NET MVC 轻量级、高度可控的框架- 分解为模型

10510

从两个重要的概念谈起:Identity与Principal

毫不夸张地说,安全主体(Principal)是整个授权机制的核心。我们可以简单地将将安全主体定义成能够被成功实施授权的主体。一个安全主体具有两个基本的要素:基于某个用户的安全身份和该用户具有的权限。...1: public interface IPrincipal 2: { 3: bool IsInRole(string role); 4: IIdentity Identity...{ get; } 5: } 上面我们具体介绍了IIdentity接口的两个实现,WindowsIdentity和GenericIdentity。...你也根据需要创建自定义用户组。从本质上讲,Windows的用户组和我们之前谈到的角色并没有本质的区别,都是一组权限的载体。 WindowsPrincipal的定义如下。...Identity { get; } 9: } 三、GenericPrincipal 而一个GenericPrincipal对象本质上就是对一个IIdentity对象和表示角色列表的字符创数组的封装而以

1.1K90

MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN

当然正如我们所想,他们继承了接口IIdentity和IPrincipal。 IIdentity封装用户信息 这个接口很简单,它只包含了三个最基本的用户身份信息。 ?...到这里,我想算是把登录代码的第二句话讲完了,讲清楚了,那么我们来看看第三句话,也就是最后一句,其实它才是登录的核心,第二句只是创建了一个ClaimsIdentity的对象。...而这些事件最后是被IIS触发的,我们是通过web.config把我们自定义的http module注册进了iis。...这们这里的交互其实是与服务器一起来处理http request,比如说ASP.NET管理模型中的那些事件,认证,授权,缓存等等,原先我们是通过自定义的http module,在里面拿到包含了request...Server就是用来暴露TCP端口,维护我们上面讲到的那个字典数据,然后通过OWin管理处理http请求 Middleware : 这个中间件就是用来在OWin管道中处理请求的组件,你可以把它想象成一个自定义

2.6K50

javaweb项目学习笔记小总结!有硬货,不鸡肋!!!

Java Web和ASP.NET核心是分别是Servlet和IHttpHandler接口,因此无论是基础的Page文件(JSP、ASPX)方式还是后来发展的MVC方式(Spring MVC、ASP.NET...Java Web的配置文件web.xml也存放在WEB-INF目录下,而ASP.NET配置文件web.config一般直接存放在应用目录下(ASP.NET其他目录同样可以有web.config文件)。...Java Web和ASP.NET中的一些核心项对应如下: image.png Servlet和ASP.NET的简化示意图: image.png 用于简化web.xml配置的Servlet的注解(3.0...ASP.NET通过SessionStateModule通过配置文件配置实际的Session提供程序,Session提供程序实现了SessionStateStoreProviderBase,因此在ASP.NET...下面是上文的小总结: (1)配置文件ASP.NET的web.config和Java的web.xml (2)Web核心ASP.NET的IHttpHandler接口和Java的Servlet接口 (3)

91120
领券