- 浏览: 2106441 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 912下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
常用Web Service汇总(天气预报、时刻表等)
2010-07-15 23:10 811下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
读blog小记
2009-11-06 10:13 7241.Google Books开始收录更多杂志,全部内容都可浏览 ... -
.NET 产品版权保护方案 (.NET源码加密保护)
2009-12-28 15:18 942说明:你希望自己用.net ... -
[转]CTO谈豆瓣网和校内网技术架构变迁
2009-12-29 11:05 948<!--done--> 豆瓣网CTO洪强 ... -
iframe框架页面实现自适应高度解决方案
2010-01-07 19:24 997经常会有父页面需要通过iframe嵌入另一个子页面,又要适时根 ... -
数据采集基类[转]
2010-01-12 18:01 802using System;using System.Data; ... -
.NET牛人应该知道些什么(转)?
2010-01-13 10:52 837何一个使用.NET的人 描述线程与进程的区别? 什么是Wi ... -
cuteEditor 配置
2010-01-13 23:54 15001、拷贝文件 (1)将CuteEditor、Bin文件夹下 ... -
纯CSS星级评价
2010-01-14 16:37 1138做一个星级评价的功能不是很难,但是要单纯用CSS写估计就 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 11871.关于伪静态的用处 ... -
关于集合类的做法示例 实体类赋值 cnblogs
2010-01-22 10:31 924关于集合类的做法 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 647使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 1072在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 832使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 691在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 7731.关于伪静态的用处 ... -
认证,授权2
2010-01-18 10:45 828以前对这部分一直糊涂着,总算理理清楚了包名:System.Se ... -
关于集合类的做法示例 实体类赋值 cnblogs
2010-01-22 10:31 940关于集合类的做法 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 1051使用Visual Studio 2005(Visu ...
相关推荐
Spring security认证授权例子,自动创建数据库,在SysUser类增加字段,即可动态增加数据库对应表sys_user字段(前提是要删除原表,启动应用时才会重建表)
公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip
Spring Security+OAuth2 精讲,打造企业级认证与授权(2022升级版) 1、企业级认证授权专项解决方案 系统解锁后端开发者必备的"安全"技能 2、主流安全框架核心一网打尽,只学实用的
这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上。赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的。 什么是Token ...
详细描述了aaa服务器的认证授权计费的配置方法;
主要介绍了Spring Security OAuth2认证授权示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SpringGateway集成Oauth2进行认证授权;还可以这么玩;SSO功能的认证;自己测试正常;SpringGateway集成Oauth2进行认证授权;还可以这么玩;SSO功能的认证;自己测试正常;SpringGateway集成Oauth2进行认证授权;还...
Spring Cloud下基于OAUTH2认证授权的实现,附带源码和页面
shiro等相关认证授权总结,Apache Shiro是一款功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观而全面的解决方案,以验证、授权、加密和会话管理。
留学人员学历认证授权声明模板..doc
本课程设计在对可信计算的体系结构、Linux的安全机制、现有的认证协议等深入研究的基础上,提出了基于Linux操作系统的用户认证与应用授权的架构,并最终完成了整个系统的搭建。本文重点分析了Kerberos认证系统与LDAP...
西门子西门子 授权 认证 SIEMENS西门子 授权 认证 SIEMENS西门子 授权 认证 SIEMENS西门子 授权 认证 SIEMENS
spring cloud框架下的单点登录sso技术 oauth2实现的认证 授权 以及zuul作为网关路由 可以参考学习使用
Spring boot+Spring Security Oauth2.0,Sprint cloud+Spring Security Oauth2集成。四种认证方式。附带有代码,和案例,案例,还有视频链接。我保证看完就回,如果视频链接失效,评论回复我,我单独再给你一份。
Shiro登录授权认证功能
apache shiro轻量级的安全认证授权框架让你快速搭建中下型企业安全认证模块
shiro认证授权框架详解,包含了认证以及授权的详细说明,以及使用shrio进行认证授权和Spring framework的整合
JAAS Java认证和授权服务笔记代码
包含使用Shiro实现认证和授权的Demo,对应博客:https://blog.csdn.net/fancheng614/article/details/83477345
认证授权是很多系统的基本功能 , 在以前PC的时代 , 通常是基于cookies-session这样的方式实现认证授权 , 在那个时候通常系统的用户量都不会很大, 所以这种方式也一直很好运行, 随着现在都软件用户量越来越大, 系统...