我有一个通过AD进行身份验证的Asp.net MVC项目。我想在当前登录用户的表中存储审核信息。我应该在数据库中存储什么?我当前正在使用SamAccountName作为我的成员资格和角色提供者。我应该使用这个吗?我应该使用更详细和现代的UserPrincipalName吗?如果我们最终最终使用多个域怎么办?
Guid呢? Guid似乎是显而易见的选择,但我对此一无所知。为什么它可以为空?这个值会改变吗?它是干什么用的?
更新资料
根据SID vs. GUID ...
完全使用SID而不使用GUID的原因是为了向后兼容。 Windows NT使用SID标识资源上ACL中的用户和组。
如果您将用户移至新域,则SID实际上会发生变化,GUID仍会保留
不变。在我看来,除非打算对NT4 AD服务器进行身份验证,否则GUID是必经之路。
我不确定在这里做什么,因为我无法在两天内接受自己的回答。最深入的解释胜出?
最佳答案
根据SID vs. GUID ...
完全使用SID而不使用GUID的原因是为了向后兼容。 Windows NT使用SID标识资源上ACL中的用户和组。
话虽如此,我已经决定使用GUID。如果将用户移至新域,则SID实际上会更改,GUID将保持不变。只要您不打算针对NT4 AD服务器运行应用程序,GUID就是您的最佳选择。
关于asp.net - 我使用哪个Active Directory字段来唯一标识用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911315/