【发布时间】:2010-12-27 01:08:34
【问题描述】:
我有一个通过 AD 进行身份验证的 Asp.net MVC 项目。我想将审计信息存储在当前登录用户的表中。我应该在数据库中存储什么?我目前使用SamAccountName 作为我的会员和角色提供者。我应该使用这个吗?我应该使用更详细和现代的UserPrincipalName 吗?如果我们最终使用多个域怎么办?
Guid 呢? Guid 似乎是显而易见的选择,但我对此一无所知。为什么它可以为空?这个值会改变吗?它是干什么用的?
更新
根据SID vs. GUID...
完全使用 SID 而不是 GUID 的原因是为了向后兼容。 Windows NT 使用 SID 来识别资源 ACL 中的用户和组。
如果您将用户移动到新域,SID 实际上会发生变化,但 GUID 将保持不变 持续的。在我看来,除非您打算针对 NT4 AD 服务器进行身份验证,否则 GUID 是可行的方法。
我不知道该怎么做,因为我在 2 天内无法接受自己的答案。最深入的解释胜出?
【问题讨论】:
-
仅供参考。 .NET 4.5 的文档说“当 ContextType 属性设置为 Machine 时,此属性将始终返回 null”
标签: asp.net asp.net-mvc active-directory asp.net-membership