- 浏览: 2162506 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
以前对这部分一直糊涂着,总算理理清楚了
包名:System.Security.Principal:
Identity:(识别)包装了已经验证过的用户名和认证的方式
主要成员:Name, IsAuthenticated, AuthenticationType
Principal: 当前代码的security上下文。包含Identity和Roles. 用于授权
主要成员:IsInRole, Identity
* // 一般用户可以有多个Indentity, 即多种身份来访问不同资源 --pending
* 每个AppDomain里面都有CallContext,CallContext里面包含Principal。线程在启动的时候也会带上Pricncipal的ref。静态方法,仅对当前线程
* Thread.CurrentPrincipal / WindowsIdentity.GetCurrent()静态方法返回当前用户。
Permission: 权限。不是用户需要权限,是执行它的代码需要权限。
Demand()要求调用此代码的代码有什么权限。Assert()断言
三种权限:
1 代码权限: 基类为CodeAccessPermission .用来保护环境变量、文件、访问非托管代码。总表参见:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpguide/html/cpconcodeaccesspermissions.htm
2 Identity权限:基类为CodeAccessPermission。对应于控制台中的信任集设定。基于发行者、强类型、域、URL。总表:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpguide/html/cpconidentitypermissions.htm
3. PrincipalPermission(Role Based Permission)
Authorization 授权 判断用户是否有权操作,比如登录的用户有没有权限访问资源或者数据库
Authentication 认证 用户的Identity. 主要有:HTTP基础认证、证书、Kerberos、Passport、NTLM、Forms-based、Digest
这两个东西最好从读音上区别,以前一直糊涂。一般应用先authenticate用户, 判断用户是否能链接到系统。然后authorization, 判断对某个功能是否有权限。
authorization一般有两种:ACL/ROLES
ACL:Acess Control Lists. 判断用户是否在有权限的用户组内。缺点:不能定义动态条件。
Role based: 用户加入到某个role以后,自动获得了很多特定的权限。先判断请求者的Identity, 然后看它是否在Role里面。类似windows用户和组的关系
1. 代码中的检查方式:new PrincipalPermission(name,role).Demand();
2. 利用Attribute的方式:[PrincipalPermissionAttribute(SecurityAction.Demand,Name="MyUser", Role="Administrator")]
3. 使用 Principal 对象中的属性和 IsInRole 方法执行显式安全性检查。
4. web.config里面authorization节中的users/roles(这个一般资料都没提到)
参考:
台湾MSDN Library 中文技術文件:PPT, 文章
台湾msdn里面有不少好东西,比china的强多了!
补充:
1. ASP.net中线程的Principal是根据HttpComtext.Current.User来的,但是从线程取更值得推荐(与asp.net无关)
2. AppDomain.CurrentDomain.SetPrincipalPolicy设定Thread.CurrentPrincipal的预设值
3. AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal) 设定新线程的预设Principal, 只能调用一次
2. global.asax的AuthenticateRequest事件中也可以设定HTtpContext.User。
3. 参考:建置安全的 ASP.NET 應用程式: 驗證、授權和安全通訊(http://www.microsoft.com/taiwan/msdn/books/ataglance/SecNetAP04.htm)
4. Intercepting Filter (截取筛选器)实现IHttpModule, 并自行处理以下事件:
BeginRequest. 此事件标志着这是一个新请求;每个请求都必须产生该事件。
AuthenticateRequest. 此事件标志着所配置的身份验证机制已经验证了请求。附加到此事件可向筛选器确保请求已通过身份验证。
AuthorizeRequest. 与 AuthenticateRequest 一样,此事件标志着现在请求在处理过程中又前进了一步,并且请求已经得到授权。
ResolveRequestCache. 输出缓存模块使用此事件来简化对已经缓存的请求所进行的处理。
AcquireRequestState. 此事件标志着应该获得各个请求状态。
PreRequestHandlerExecute. 此事件标志着请求处理程序将要执行。这是在调用此请求的 HTTP 处理程序之前您可以参与的最后一个事件。
下一个列表显示了处理请求之后产生的事件。这些事件是按照发生的顺序列出的:
PostRequestHandlerExecute. 此事件标志着 HTTP 处理程序已经完成了对请求的处理。
ReleaseRequestState. 此事件标志着应该存储请求状态,因为应用程序已经完成了对请求的处理。
UpdateRequestCache. 此事件标志着代码处理已完成,可以将文件添加到 ASP.NET 缓存中。
EndRequest. 此事件标志着已完成对请求的所有处理。这是应用程序结束时所调用的最后一个事件。
此外,以下三个请求处理前事件可以按不确定顺序引发:
PreSendRequestHeaders.此事件标志着 HTTP 头将要发送给客户端。因此可以在发送之前添加、删除或修改头信息。
PreSendRequestContent. 此事件标志着内容将要发送给客户端。这为发送之前修改内容提供了一个机会。
Error. 此事件标志着有未处理的异常。
在web.config中添加:
<httpModules>
<add name="UserLogModule" type="UserLogModule, ifilter" />
</httpModules>
发表评论
-
常用Web Service汇总(天气预报、时刻表等)
2010-07-15 23:10 939下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
常用Web Service汇总(天气预报、时刻表等)
2010-07-15 23:10 843下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
读blog小记
2009-11-06 10:13 7511.Google Books开始收录更多杂志,全部内容都可浏览 ... -
.NET 产品版权保护方案 (.NET源码加密保护)
2009-12-28 15:18 974说明:你希望自己用.net ... -
[转]CTO谈豆瓣网和校内网技术架构变迁
2009-12-29 11:05 980<!--done--> 豆瓣网CTO洪强 ... -
iframe框架页面实现自适应高度解决方案
2010-01-07 19:24 1042经常会有父页面需要通过iframe嵌入另一个子页面,又要适时根 ... -
数据采集基类[转]
2010-01-12 18:01 841using System;using System.Data; ... -
.NET牛人应该知道些什么(转)?
2010-01-13 10:52 865何一个使用.NET的人 描述线程与进程的区别? 什么是Wi ... -
cuteEditor 配置
2010-01-13 23:54 15341、拷贝文件 (1)将CuteEditor、Bin文件夹下 ... -
纯CSS星级评价
2010-01-14 16:37 1175做一个星级评价的功能不是很难,但是要单纯用CSS写估计就 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 12131.关于伪静态的用处 ... -
关于集合类的做法示例 实体类赋值 cnblogs
2010-01-22 10:31 956关于集合类的做法 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 675使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 1072在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 864使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 691在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 7971.关于伪静态的用处 ... -
认证,授权2
2010-01-18 10:45 849以前对这部分一直糊涂着,总算理理清楚了包名:System.Se ... -
关于集合类的做法示例 实体类赋值 cnblogs
2010-01-22 10:31 971关于集合类的做法 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 1076使用Visual Studio 2005(Visu ...
相关推荐
Spring Security OAuth2是一个强大的安全框架,它为Web应用程序提供了安全认证和授权的功能。OAuth2则是一种开放标准,允许用户授权第三方应用访问他们存储在另一服务提供商的数据,而无需分享他们的用户名和密码。...
2. **授权过程**: - **访问决策管理器**:Spring Security使用`AccessDecisionManager`来决定用户是否可以访问某个资源。默认使用投票机制,根据用户的权限角色来决定。 - **访问控制表达式**:你可以使用`@...
《ABP框架之OpenIddict分布式认证授权学习手册v1.0》是Rex编写的,旨在引导读者深入理解如何在ABP框架下利用OpenIddict进行分布式认证授权的实践操作。本文将详细解析手册中的关键知识点,帮助开发者构建安全、高效...
接下来,我们将深入探讨如何在Spring Cloud环境中实现OAuth2认证授权。 首先,OAuth2的核心概念包括客户端(Client)、资源所有者(Resource Owner)、资源服务器(Resource Server)和授权服务器(Authorization ...
### AAA服务器的认证、授权与计费:深入解析与配置指南 #### 认证:确保网络安全性 在AAA(Authentication, Authorization, and Accounting)体系结构中,认证是基础且关键的第一步,它确保只有经过验证的用户才能...
"公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.txt"可能进一步阐述了这些概念的实际应用,例如在电子商务、电子政务、物联网设备认证等场景下的作用和实现方法。 "公钥加密与PKI实验_加密解密_实验楼 - ...
Spring Security+OAuth2 精讲,打造企业级认证与授权(2022升级版) 1、企业级认证授权专项解决方案 系统解锁后端开发者必备的"安全"技能 2、主流安全框架核心一网打尽,只学实用的
IdentityServer4是ABP框架中用于实现分布式认证授权的核心组件,它是一个符合OpenID Connect和OAuth 2.0标准的认证服务器,可以为微服务架构提供安全的API访问。 1. **介绍** ABP框架与IdentityServer4的结合,...
本课程"Spring Security+OAuth2 精讲,打造企业级认证与授权"深入浅出地讲解了这两个框架的使用和集成,旨在帮助开发者构建安全、高效的应用系统。 Spring Security是Spring生态系统中的一个强大安全框架,它提供了...
留学人员学历认证授权声明模板 本文档提供了留学人员学历认证授权声明模板,供留学人员在申请学历认证时使用。该模板涵盖了个人信息、授权声明和签名等重要内容,旨在帮助留学人员快速、准确地提交学历认证申请。 ...
这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上。赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的。 什么是Token ...
在IT行业中,认证授权是确保系统安全性的重要环节。在第5章"认证授权v3.1"中,我们将深入探讨这一关键概念及其在实际项目中的应用。本章主要分为两个部分:模块需求分析和Spring Security认证研究。 1. **模块需求...
shiro 认证授权框架详解 Shiro 认证授权框架是 Java 中一种流行的认证授权解决方案,提供了完整的认证和授权机制,能够满足大多数应用程序的安全需求。Shiro 框架的核心思想是将认证和授权分离,认证负责验证用户...
基于Python的统一身份认证授权管理系统提供了一种高效、安全的解决方案,它能够支持多种业界标准协议,如LDAP(轻量目录访问协议)、OAuth2、SAML(Security Assertion Markup Language)以及OpenID。这些协议在不同...
**Spring Cloud OAuth2** 是OAuth2协议的Java实现,它是Spring Security的扩展,为微服务提供了认证和授权功能。使用Spring Cloud OAuth2,我们可以创建一个授权服务器来处理用户的登录和授权请求,以及保护资源...
综上所述,本专利提出的技术方案为现有的统一认证授权体系提供了一种更为高效、灵活且可靠的解决方案。通过实现业务系统细粒度的反向授权,不仅可以显著提高企业的信息化管理水平,还能为企业带来更多的竞争优势。...
Spring boot+Spring Security Oauth2.0,Sprint cloud+Spring Security Oauth2集成。四种认证方式。附带有代码,和案例,案例,还有视频链接。我保证看完就回,如果视频链接失效,评论回复我,我单独再给你一份。
现代化架构下企业统一身份认证和授权实现 本文主要讨论了现代化架构下企业统一身份认证和授权实现的重要性和必要性。在现代化架构下,企业中有很多不同的应用系统,每个系统都需要用户注册和登陆,导致用户需要记忆...
shiro等相关认证授权总结,Apache Shiro是一款功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观而全面的解决方案,以验证、授权、加密和会话管理。
Java认证和授权服务(Java Authentication and Authorization Service,简称JAAS)是Java平台提供的一种安全机制,用于处理用户身份验证和权限管理。它为开发者提供了一种标准的方式来集成各种安全策略和认证机制,...