我正在开发的C#应用程序需要为应用程序的任何用户存储一些元数据(例如,应用程序首选项,权限等)。我们使用AD进行授权/身份验证。
将SID或DOMAIN /用户名存储在应用程序数据库中以识别AD帐户是否更好?
答案 0 :(得分:3)
我会存储SID,并在/需要显示与该帐户关联的名称时使用LookupAccountSID。
答案 1 :(得分:2)
我已经两种方式做到了......
答案 2 :(得分:2)
我们已经构建了一个小类来连接两个并且只在sid上进行比较。格式类似于以下字符串:
"Domain\\User\nS-1-5-21-...........-1129"
这允许我们在数据库和调试器中使用“友好”名称,但所有绑定实际上都在值的sid部分。
当您询问用户名更改时会发生什么?数据陈旧且保持这种状态:)
顺便说一下,如果你做这样的事情,请确保你不能从对象中获取'显示名称',因为你不希望它显示给用户,因为它可能是陈旧的。而是提供一个LookupUserName()例程,该例程执行SID到帐户名的正确解析。最后,请确保存储SID,但是请执行此操作。你不想存储JDoe,当Jane退出并且约翰开始一个月后他突然有权访问?