我需要在我的 Web 应用程序中为用户生成自定义 SID,以便与 Microsoft AzMan 一起使用。做这个的最好方式是什么?在执行此操作之前我需要了解什么?
这就是我的想法,但我不确定我是否遗漏了一些东西:
S-1-9-1234-{user_id + 1000}
S-{第一次修订}-{资源管理员权限}-{域(特定应用程序的唯一编号)}-{用户的唯一ID}
更新:由于 David Crawford 的博客条目而更改为资源管理器权限:http://blogs.msdn.com/dc995/archive/2006/08/23/715021.aspx
正如我从 MSDN 的使用 Windows 授权管理器开发应用程序文章中发现的:
创建自定义 SID 时,您必须为您的应用程序建立 SID 设计。例如,您可能有S-1-9- AppInstanceGUID-UserGuid,其中 9 是资源管理器子权限,AppInstanceGUID和UserGUID分别分为四个子权限。您还可以使用 S-1-9- AppInstanceGuid-UserRID,其中UserRID是应用程序实例范围内用户的唯一编号。如果您想使用自定义组,您可以使用这些技术之一为每个组创建一个 SID。有关生成 GUID 的示例代码,请参阅 Microsoft Windows 软件开发工具包 (SDK)。
因此,看起来 AzMan 允许您以最适合您需求的方式生成 SID。您唯一需要做的就是确保为语义不同的用户生成的 SID 是唯一的。(即使在不同的机器上生成。)