`
pcajax
  • 浏览: 2162761 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

授权(Authentication)

阅读更多


http://www.microsoft.com/taiwan/msdn/library/2003/dec-2003/vbnet10282003.htm

http://www.cnblogs.com/steeven/archive/2004/03/18/3523.aspx

一般概念:
1。初始化整个AppDomain的Principal策略(ASP.NET中策略由webconfig决定;更改无效;):
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.NoPrincipal);
   有时候需要(但一般不需要,并且多次调用会产生Exception):
   初始化整个AppDomain的Principal:
        AppDomain.CurrentDomain.SetTreadPrincipal();
2。初始化Principal:
                new Identity();
                new Principal();          
                Thread.CurrentPrincipal = myPrincipal;
    3。Principal的两个: Identity;
                         IsInRole();
    4。Identity的属性:  Name;
                         AuthenticationType;
                         IsAuthenticated;——一旦给Identity赋值了Name和AuthenticationType,该属性就为true;否则为false;

Login步骤:
1。检验uid;pwd;
2。正确,则初始化Identity(Name,AuthenticationType——则此时IsAuthenticated=true),和Principal;
3。错误,也初始化Identity(Name="",AuthenticationType=""——则此时IsAuthenticated=false),和Principal;
4。if(Identity.IsAuthenticated)
   {
        Principal.IsInRole();// 判断用户角色;
   }

分类:
   WebForm:
        Forms认证:
                设置web.config中认证方式为:Forms;及loginURL;
                        我想过程可能是这样的:每次请求一个页面,aspnet_isapi都会检查Identity.IsAuthenticated属性;
                                              为True,允许用户访问页面资源;False,定向到loginURL页面;
                                              所以Login的角色相当于Windows自己的验证,只不过是给Identity初始化;
                        但是,这是错误的:aspnet_isapi不会检查Identity.IsAuthenticated属性;这个属性只有自己的代码来检查;
                                          相当于开发人员有三种编码依据:Name、Type、Role;据此判断流程;
                        所以重要的一点就是保存用户的Principal(即HttpContex.Current.User),可以用Cookie;或缓存(是否能行??);
                设置IIS-安全性-匿名访问;
                写Login代码,分两步:
                        一。验证UID、PWD,并给Identity初始化;
                        二。重定向到原始请求页面:FormsAuthentication
               
       
        Windows认证:
                WindowsIdentity myIdentity = new WindowsIdentity("kevin","Normal");//为什么总是“无法登陆”???
                Thread.CurrentPrincipal = new WindowsPrincipal(myIdentity);
                正确方法:
                设置web.config中认证方式为:windows;
                设置IIS-安全性-去掉匿名访问,勾选windows集成认证;
                则客户端访问时,第一次出现登陆对话框;
       
   WindowForm:
        Windows认证:??
               


突然觉得,Identity不过是一个用户信息的包装而已,包装了Name和Type,还要一个表示“是否包装”过的标志位:IsAuthenticated。
Principal才提供了一些验证的功能,如IsInRole。
另外重要的一点时:他们两个都是和线程(Thread)相关的,我想这是与自己包装的类的最大区别。
所以在编写线程相关的代码时(如线程池),需要注意:新创建的线程将使用一个新的Principal和Identity,除非自己编码:
myNewTread.CurrentPrincipal = Thread.CurrentPrincipal;
myNewTread.Start();
(对于BeginInvoke是个例外,确不知道是什么意思。)

分享到:
评论

相关推荐

    redis连接报错error:NOAUTH Authentication required

    Redis 服务器提供了密码验证机制,以确保只有授权的客户端才能连接到服务器。该机制通过在 Redis 配置文件中设置密码来实现。密码可以通过 `requirepass` 指令在配置文件中设置。例如,在 Redis 配置文件中添加以下...

    ASP.NET MVC 5 with Bootstrap and Knockout

    第10章添加验证与授权 Authentication概述 Authorization概述 实现一个Authentication过滤器 实现一个Authorization过滤器 小结 第11章使用Attribute定义URL路由 Attribute路由基础知识 路由前缀 路由约束 ...

    FormsAuthentication 权限验证

    3. **配置文件**:Web.config中关于身份验证和授权的配置,如启用FormsAuthentication,设置票证过期时间,以及权限控制规则。 4. **角色和用户管理**:可能包括创建和管理用户、角色的代码,以及将用户分配到角色的...

    Fuji Xerox富士施乐Authentication Adapter 使用说明书.pdf

    Authentication Adapter带有触摸屏,允许用户通过各种认证方式(如IC卡)进行身份验证,确保只有授权的人员可以访问打印、复印和扫描等功能。 **Authentication Adapter概述** Authentication Adapter的主要功能是...

    iPod_Authentication_Coprocessor_Spec

    ### iPod Authentication Coprocessor Specification详解 #### 一、概述 **iPod Authentication Coprocessor**是苹果公司(Apple Inc.)开发的一种专用芯片,用于在iPod和其他Apple设备之间进行安全的数据交换。此...

    express-authentication-bearer:HTTP Bearer支持与快速身份验证兼容

    开发者可以通过简单的配置,使Express应用能够解析和验证来自客户端的Bearer Token,从而保护API资源不被未经授权的访问。 项目的核心功能包括: 1. **Token解析**:中间件自动从请求头中提取Bearer Token,通常是...

    WCF RIA Service 学习 案例源码 认证 Authentication SilverLight 学习

    **认证 Authentication** 在任何涉及用户安全的应用中都是至关重要的。在WCF RIA Services中,认证涉及到验证用户的身份,确保只有经过授权的用户才能访问特定资源或执行特定操作。这个案例源码很可能是展示了如何在...

    mobile authentication

    随着智能手机的普及,移动认证变得越来越重要,因为它确保了用户的隐私安全,并防止了未授权访问。 #### 应用场景 - **移动支付**:通过指纹、面部识别等方式进行快速支付。 - **应用登录**:许多应用程序都需要...

    SecMask Authentication & Authorasation.pdf

    从提供的文件内容来看,文件标题和描述中提到了两个关键词:Authentication与Authorization,以及Encryption。这三个词汇在信息安全和网络安全领域中非常关键,它们分别是身份验证、授权以及加密。在讨论这三个概念...

    操作系统之安全算法:Authentication and Authorization:授权机制深入解析.docx

    操作系统之安全算法:Authentication and Authorization:授权机制深入解析.docx

    NR网络拒绝码-5gsm_cause = 29 (0x1d) (User authentication failed).docx

    "NR网络拒绝码-5gsm_cause = 29 (0x1d) (User authentication failed)"是其中一个特定的错误,表示UE的鉴权或授权失败。本文将深入探讨此问题的原因、3GPP协议中的相关规定以及UE如何应对这种情况。 1. 问题描述: ...

    An Improved Uniform Identity Authentication Method.pdf

    标题中提到的“An Improved Uniform Identity Authentication Method.pdf”和描述中的内容表明,本文档是一项改进的基于SAML(Security Assertion Markup Language)的身份认证方法,它专注于在云环境中实现改进的...

    关于Rails登录和验证插件http_authentication restful-authentication

    在Rails应用中,用户认证和授权是常见的需求,用于保护应用资源的安全。"http_authentication"和"restful-authentication"是两个早期的Rails登录和验证插件,它们为Rails应用提供了基本的身份验证功能。 HTTP基本...

    操作系统之安全算法:Authentication and Authorization:高级授权与访问控制技术.docx

    操作系统之安全算法:Authentication and Authorization:高级授权与访问控制技术.docx

    iPod Authentication Coprocessor Spec 2.0C R1.rar_iOS通讯协议

    《iOS设备通讯协议详解——基于iPod Authentication Coprocessor Spec 2.0C R1》 在iOS设备的生态系统中,通信协议起着至关重要的作用,确保设备与各种服务、应用以及外部配件之间的无缝交互。这份名为“iPod ...

    802.1X Port-Based Authentication.pdf

    部署802.1X的目的通常是为了加强网络安全,确保只有经过授权的用户和设备才能访问网络资源,减少了未授权访问带来的安全风险。它被广泛应用于企业、教育机构和政府机构的网络中,以满足其安全政策的要求。 本文件的...

    苹果iOS开启双重认证的步骤 Two-Factor Authentication

    苹果公司为提高用户数据安全性,强制要求所有开发者账号启用双重认证(Two-Factor Authentication,简称2FA),这是保护账户免受恶意攻击的重要措施之一。 双重认证是一种多因素验证机制,通常包括以下两个部分: ...

    使用ASP.NET AJAX提供的Authentication Service

    8. **个性化和角色管理**:Authentication Service也支持基于角色的授权。通过检查用户的角色,可以控制对特定页面或功能的访问,实现个性化用户体验。 9. **AJAX Toolkit**:除了核心的ASP.NET AJAX库,还可以利用...

    Python库 | openlxp_authentication-1.1.1-py3-none-any.whl

    总的来说,openlxp_authentication库为Python开发者提供了一套强大且灵活的身份验证和授权解决方案,使得在构建安全的应用程序时能更加专注业务逻辑,而无需从零开始设计和实现认证和授权系统。对于任何涉及用户登录...

Global site tag (gtag.js) - Google Analytics