如何生成自定义SID?

时间:2010-03-05 18:09:33

标签: .net-3.5

我需要为我的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

1 个答案:

答案 0 :(得分:4)

正如我在MSDN的Developing Applications Using Windows Authorization Manager文章中找到的那样:

  

创建自定义SID时,必须为应用程序建立SID设计。例如,您可能有 S-1-9 - AppInstanceGUID-UserGuid ,其中9是资源管理器子权限, AppInstanceGUID 和< em> UserGUID 分别分为四个子权限。您还可以使用S-1-9 - AppInstanceGuid-UserRID ,其中 UserRID 是应用范围内用户的唯一编号实例。如果要使用自定义组,可以使用这些技术之一为每个组创建SID。有关生成GUID的示例代码,请参阅Microsoft Windows软件开发工具包(SDK)。

所以看起来AzMan允许您以最符合您需求的方式生成SID。 而您唯一需要的是确保为语义不同的用户生成的SID是唯一的。 (即使在不同的机器上生成。)