IPrincipal和IIdentity

来源:互联网 发布:手机网络ssid怎么设置 编辑:程序博客网 时间:2024/05/29 10:15

IPrincipal和IIdentity
IPrincipal:用户对象表示用户的安全上下文,代码当前即以该用户的名义运行,包括用户的标示(IIdentity)和他们所属的任何角色。所有的用户对象都需要实现

IPrincipal。(msdn中的说明)
如果想对现有的asp.net应用程序应用用户角色验证理,那么可以通过IPrincipal借口自定义一个CustomPrincipal来实现用户角色验证。
IIdentity:
定义标示对象的基本功能;代表特定用户的标示对象,代码当前以该用户的名义运行。
(msdn中的说明)

IPrincipal和IIdentity在asp.net程序实例的上下文中可以找到。
常见的做法是:
asp.net应用程序中会员类实现了IIdentity借口,然后CustomPrincipal类通过组合的方式封装该会员类,同时CustomPrincipal实现了IPrincipal接口;
当前代码获取用户标示时,最直接的做法是直接调用HttpContext.Current.User接口(一直以来认为HttpContext.Current.User是个类,后来才发现,是个接口!),

HttpContext.Current.User接口在默认上下文中,我还不清楚是由哪个类来的;不过,HttpContext.Current.User接口是可以赋值的,这样可以在实例化CustomPrincipal后,

赋值给HttpContext.Current.User接口。赋值的操作可以放在HttpApplication实例中的AuthenticateRequest事件。

原创粉丝点击