我想利用:
Page.User.IsInRole("CustomRole");
Page.User.Identity.IsAuthenticated
在 Page 方法以及web.config中的授权部分工作时:
<authorization>
<allow roles="Administrators, Supervisors" />
<deny users="*" />
</authorization>
并在类和方法级别应用规则:
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
在我的应用程序中,我使用 ... 自定义机制进行身份验证,该机制在 ... http 标头中为我提供用户身份。我得到用户 PIN 码(某种 ID)+ 角色。但这是一个支线情节。没关系。
我真正想要实现的是利用 ASP .NET 内置的授权功能,但拥有我的自定义身份验证机制。我想我必须实现IPrincipal和IIdentity,对吗?我在网上看到了很多示例,但所有示例都包括指定提供程序的 web.config 配置,以及FormsAuthentication之类的类,我想我不需要这些。我只需要将我的用户对象(由我准备)注入到请求中,就是这样。
所以:
- 实现它的最简单方法是什么?
- GenericPrincipal / IPrincipal 有什么区别?
如何获取/创建 IIdentity 对象?我看到了样本:
var id = new FormsIdentity(authTicket);
但我没有使用 FormsAuthentication。
谢谢