Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中的自定义主体对象与成员API?_C#_Asp.net_Authorization_Membership_Principal - Fatal编程技术网

C# ASP.NET中的自定义主体对象与成员API?

C# ASP.NET中的自定义主体对象与成员API?,c#,asp.net,authorization,membership,principal,C#,Asp.net,Authorization,Membership,Principal,我试图掌握在传统ASP.NET应用程序中实现自定义授权的各种技术——似乎首选的方法是通过创建自定义提供程序模型来使用成员API 我感兴趣的是基于角色和个人权限的组合实现自定义角色授权模型(角色由权限组成,用户可以有多个角色或特定权限,这些权限覆盖角色可能拥有的任何权限) 与实现自定义主体对象和在IsInRole方法的重载中实现所有授权逻辑相比,创建一个成熟的角色提供程序有什么优点或缺点?自定义主体是源自1.1的不推荐技术吗?通常,您应该在什么时候实现自定义主体 我们使用Active Direct

我试图掌握在传统ASP.NET应用程序中实现自定义授权的各种技术——似乎首选的方法是通过创建自定义提供程序模型来使用成员API

我感兴趣的是基于角色和个人权限的组合实现自定义角色授权模型(角色由权限组成,用户可以有多个角色或特定权限,这些权限覆盖角色可能拥有的任何权限)

与实现自定义主体对象和在IsInRole方法的重载中实现所有授权逻辑相比,创建一个成熟的角色提供程序有什么优点或缺点?自定义主体是源自1.1的不推荐技术吗?通常,您应该在什么时候实现自定义主体

我们使用Active Directory作为用户存储。一家第三方咨询公司实现了一个可怕的基于自定义角色的授权模块,该模块包含XML文件中包含的授权逻辑和规则,并在会话对象中为每个用户传递,并且不与ASP.NET基础结构绑定以进行授权


我想知道这方面的最佳实践是什么

我建议坚持asp.net成员资格和角色提供程序体系结构。它集成良好,是一个经过深思熟虑的系统

如果需要使用其他帐户存储,则asp.net成员资格或active directory始终可以实现自定义成员资格和/或角色提供程序。这并不难

可以将自定义第三方系统包装在自定义角色提供程序中,但我只会在给定类中没有提供特殊需求的情况下进行自定义


我建议坚持asp.net成员资格和角色提供程序体系结构。它集成良好,是一个经过深思熟虑的系统

如果需要使用其他帐户存储,则asp.net成员资格或active directory始终可以实现自定义成员资格和/或角色提供程序。这并不难

可以将自定义第三方系统包装在自定义角色提供程序中,但我只会在给定类中没有提供特殊需求的情况下进行自定义


我同意,与提供商模式挂钩似乎是最稳健的解决方案。在这种情况下,何时使用自定义主体对象?它们在功能意图上似乎有一些重叠,角色提供者显然指定了一个更完整的功能集。不,不幸的是,没有人给我一个明确的答案,清楚地概括和对比这两种方法的优缺点。最后,我选择了自定义角色提供程序,因为它更易于维护,并提供了更广泛的功能集/钩子来实现,而且通常似乎是首选的/“现代”方法。我同意,钩子到提供程序模型似乎是最健壮的解决方案。在这种情况下,何时使用自定义主体对象?它们在功能意图上似乎有一些重叠,角色提供者显然指定了一个更完整的功能集。不,不幸的是,没有人给我一个明确的答案,清楚地概括和对比这两种方法的优缺点。最后,我选择了自定义角色提供程序,因为它更易于维护,并提供了更广泛的功能集/钩子来实现,通常看起来是首选的/现代的”方法。