首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏分布式系统和大数据处理

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

    Asp.Net 用户验证(自定义IPrincipal和IIdentity) 2008-12-7 作者: 张子阳 分类: Asp.Net 引言 前一段时间有两个朋友问我,为什么在HttpModule 除此以外,还有一个原因,就是.Net验证机制的核心IPrincipal和Identity提供的信息用户信息太少了,当在页面后置代码中使用继承来的User属性(IPrincipal类型)时,它的Identity 实际上,我们可以自定义一个IPrincipal和IIdentity来完成,接下来就来看一下。 自定义IPrincipal和IIdentity 不管是在Windows上还是在Web上,.Net都使用这两个接口来实现用户的身份验证。 从这个角度上来看,自定义IPrincipal和IIdentity并没有太大的意义。 这里,我们最好是定义一个自己的类型来承载用户数据,下面我们就看下如何完成。

    2.2K31发布于 2018-09-30
  • 来自专栏大内老A

    [WCF权限控制]从两个重要的概念谈起:Identity与Principal[下篇]

    在.NET基于安全的应用编程接口中,通过IPrincipal接口表示安全主体。 目录 一、IPrincipal 二、WindowsPrincipal 三、GenericPrincipal 四、 基于安全主体的授权 一、IPrincipal 用以表示安全主体的IPrincipal接口定义在System.Security.Principal命名空间下。 IPrincipal的定义体现在如下的代码片断中,从中我们可以看出IPrincipal仅仅具有两个成员。 实际上IPrincipal也具有相类似的实现类型:WindowsPrincipal和GenericPrincipal,它们均定义在System.Security.Principal命名空间下。

    1.3K90发布于 2018-01-16
  • 来自专栏销声匿迹

    asp.net web api添加自定义认证

    cancellationToken) { return Task.FromResult(0); } private Task<IPrincipal > AuthenticateAsync(HttpRequestMessage request) { return Task.Run<IPrincipal>(()

    1.3K20发布于 2020-09-03
  • 来自专栏四楼没电梯

    判断是否是Guest用户

    sorts of interesting things in it. .NET has the Thread.CurrentPrinciple property, which returns an IPrincipal You can get the SID: IPrincipal principal = Thread.CurrentPrincipal; WindowsIdentity identity = principal.Identity

    57410编辑于 2024-10-12
  • 来自专栏哲学驱动设计

    性能优化总结(五):CSLA服务端如何使用多线程的解决方案

    那么我们来看这个属性在CSLA中的源代码: private static IPrincipal _principal; public static IPrincipal User {     get     {         IPrincipal current;         if (HttpContext.Current ! 为了最少地改动原有代码,我把字段的代码修改为: [ThreadStatic] private static IPrincipal __principalThreadSafe; private static IPrincipal __principal; private static IPrincipal _principal {     get     {         return _executionLocation

    89480发布于 2018-01-26
  • 来自专栏菩提树下的杨过

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

    windows后,能安装软件、修改windows设置等所有操作,而Guest用户登录后,只有做有限的操作(比如安装软件就被禁止了).  .net中与"认证"对应的是IIdentity接口,而与"授权"对应的则是IPrincipal { IIdentity Identity { get; } bool IsInRole(string role); } } 应该注意到:IPrincipal membership/role的原理就是基于这二个接口的,如果再对HttpContext.Current.User刨根问底,能发现下面的定义: 即:HttpContext.Current.User本身就是一个IPrincipal 其实...就算不用membership/role,上面提到的这二个接口仍然是可以使用的,但有一个问题:winform中,IPrincipal接口的实例可以一直存储在内存中(直到程序退出),所以其它窗口就能继续访问它 协议本身是无状态的,但是每个aspx页面被请求时,总会附带一个HttpContext上下文,可以用它来找回一些前世的记忆,而且文章最开头提到了 HttpContext.Current.User本身就是IPrincipal

    2.4K100发布于 2018-01-23
  • 来自专栏大内老A

    [WCF权限控制]通过扩展自行实现服务授权[提供源码下载]

    ICallContextInitializer 2: { 3: public void AfterInvoke(object correlationState) 4: { 5: IPrincipal principal = correlationState as IPrincipal; 6: if (null ! ServiceSecurityContext.Current); 15: return originalPrincipal; 16: } 17: protected abstract IPrincipal WindowsAuthorizationCallContextInitializer:AuthorizationCallContextInitializerBase 2: { 3: protected override IPrincipal 5: { 6: this.RoleProvider = roleProvider; 7: } 8: protected override IPrincipal

    939100发布于 2018-01-16
  • 来自专栏跟着阿笨一起玩NET

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

    windows后,能安装软件、修改windows设置等所有操作,而Guest用户登录后,只有做有限的操作(比如安装软件就被禁止了). .net中与"认证"对应的是IIdentity接口,而与"授权"对应的则是IPrincipal

    1K10发布于 2018-09-18
  • 来自专栏不做码农的开发者

    【asp.net core 系列】15 自定义Identity

    CookieAuthenticationDefaults.AuthenticationScheme 这时候,我们已经获得了一个Identity对象,在asp.net core 中 Identity体系还有最后一个关键类: public class ClaimsPrincipal : IPrincipal public ClaimsPrincipal(); public ClaimsPrincipal(IIdentity identity); public ClaimsPrincipal(IPrincipal identities); public virtual void AddIdentity(ClaimsIdentity identity); } 这个类提供了几个方法用来存储Identity,这个类在IPrincipal 接下来,让我们反向解析出Principal里面的数据: public interface IPrincipal { IIdentity? Identity { get; } bool IsInRole(string role); } IPrincipal提供了两个基础数据和方法,一个是获取一个Identity对象,一个是判断是否是某个角色

    1.1K20发布于 2020-07-13
  • 来自专栏不做码农的开发者

    【asp.net core 系列】13 Identity 身份验证入门

    我们来看下这个类的基本情况吧: public class ClaimsPrincipal : IPrincipal { public ClaimsPrincipal(); public ClaimsPrincipal(BinaryReader reader); public ClaimsPrincipal(IIdentity identity); public ClaimsPrincipal(IPrincipal

    1.4K20发布于 2020-06-24
  • 来自专栏大内老A

    [WCF权限控制]利用WCF自定义授权模式提供当前Principal[实例篇]

    Principal"] = GetPrincipal(userName); 23: return false; 24: } 25:  26: private IPrincipal operationContext.ServiceSecurityContext.AuthorizationContext.Properties["Principal"] = GetPrincipal(userName); 11: return true; 12: } 13: private IPrincipal

    1K110发布于 2018-02-07
  • 来自专栏圣杰的专栏

    Asp.net mvc 知多少(八)

    ASP.NET 提供了IPrincipal 和IIdentity接口来表示用户的身份和角色。这两个接口 绑定到HttpContext对象和当前线程。可以通过实习这两个接口来创建自定义的方案。 public class CustomPrincipal : IPrincipal { public IIdentity Identity { get; private set; } public

    1.9K90发布于 2018-01-11
  • 来自专栏stcnb

    SYSLIB0002:PrincipalPermissionAttribute 已过时

    如果要将属性应用到 Web 应用上下文之外的库代码,请执行以下操作: 通过调用 IPrincipal.IsInRole(String) 方法,在方法开始时手动执行检查。

    49030编辑于 2022-01-05
  • 来自专栏大内老A

    [WCF权限控制]WCF的三种授权模式

    1: internal sealed class RoleProviderPrincipal : IPrincipal 2: { 3: public RoleProviderPrincipal

    1K70发布于 2018-01-16
  • 来自专栏.Net Core 技术栈

    Asp.Net Core 中IdentityServer4 实战之 Claim详解

    那这些证件需要一个载体去容纳,那ClaimsPrincipal这个就相当于是这些证件的载体,我们来看看它的部分核心代码: public class ClaimsPrincipal : IPrincipal public ClaimsPrincipal(IIdentity identity); public ClaimsPrincipal(IPrincipal

    1.8K20编辑于 2022-04-07
  • 来自专栏c#开发者

    企业库推广

    "Submit Order" [C#] IPrincipal principal = new GenericPrincipal(new GenericIdentity(identity), new string [C#] IPrincipal principal = this.rolesProvider.GetRoles(this.identity); if (principal !

    2K130发布于 2018-04-13
  • 来自专栏大内老A

    [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证

    17: public void OnAuthentication(AuthenticationContext filterContext) 18: { 19: IPrincipal } 44: 45: protected virtual bool IsAuthenticated(AuthenticationContext filterContext, out IPrincipal

    1.4K110发布于 2018-01-15
  • 来自专栏精益码农

    ASP.NET Core 基于声明的访问控制到底是什么鬼?

    我们常用的HttpContext.User属性ASP.NET 4.0时代是IPrincipal类型,ASP.NETCore现在强化为ClaimsPrincipal类型。 ?

    1.2K30发布于 2020-09-27
  • 来自专栏小神仙

    SignalR使用笔记

    2) 默认情况下,这是IPrincipal.Identity.Name,但是可以通过向全局主机注册IUserIdProvider的实现来更改。 x. 连接ID列表中的所有客户端和组。 1) ?

    1.7K20发布于 2019-09-29
  • 来自专栏木宛城主

    ASP.NET那点不为人知的事(一)

    public IPrincipal User { get { return this. SecurityAction.Demand, ControlPrincipal=true)] set { this.SetPrincipalNoDemand(value); } } Iprincipal 类型了System.Security.Principal.IIdentity属性 [ComVisible(true), __DynamicallyInvokable] public interface IPrincipal

    1.4K80发布于 2018-01-11
领券