C# 用ADFS 2.0返回的声明使用ClaimsPrincipalPerpermission注释类
我正在使用一个支持声明的web应用程序。 我想锁定具有自定义属性的网页,以便在存在特定声明时允许访问该网页 我可以做到以下几点C# 用ADFS 2.0返回的声明使用ClaimsPrincipalPerpermission注释类,c#,.net,annotations,authorization,adfs2.0,C#,.net,Annotations,Authorization,Adfs2.0,我正在使用一个支持声明的web应用程序。 我想锁定具有自定义属性的网页,以便在存在特定声明时允许访问该网页 我可以做到以下几点 Claim claim = claimsIdentity.Claims.FirstOrDefault(c => c.ClaimType == "http://somedomain.com/claims/MemberOfGroup" && c.Value == "domain\\test group"); 如果声明为空,则将它们从页面重定向 但是
Claim claim = claimsIdentity.Claims.FirstOrDefault(c => c.ClaimType
== "http://somedomain.com/claims/MemberOfGroup" && c.Value == "domain\\test group");
如果声明为空,则将它们从页面重定向
但是我如何通过注释类来实现这一点呢
我在看触诊申请表
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource="", Operation="")]
但对于我的一生来说,我看不出应该在资源和运作上投入什么。我如何将adfs返回的索赔放入索赔中。要做到这一点,我需要编写很多自定义类吗
谢谢,您必须创建自己的AuthorizationManager类,该类继承自ClaimsAuthorizationManager并重写CheckAccess()方法。对于使用ClaimSprinciPerpermission属性修饰的任何方法,都将调用此方法。它将被传递一个AuthorizationContext对象,该对象包含资源字符串、操作字符串和包含当前用户所有声明的IPrincipal对象。在这个方法中,您可以选择任何方式来解析这些数据,以确定访问权限并返回true或false
在WIFSDK示例中,您将发现一个名为ClaimsAuthorization的简单控制台应用程序项目,它演示了这一点。它使用资源和操作查看应用程序配置文件,查看用户需要什么声明,并相应地返回true或false。当然,您不必这样做,您可以使用您选择的任何其他逻辑
样本通常在c:\程序文件(x86)\Windows身份基础SDK\v4.0\Simult\Exababy\RealabpBasic授权< /P>
希望有帮助