asp.net - 我使用哪个Active Directory字段来唯一标识用户?

标签 asp.net asp.net-mvc active-directory asp.net-membership

我有一个通过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/

相关文章:

asp.net - 检测您的站点是否正在被机器人访问

asp.net - jQuery Ajax 调用 - 成功时设置变量值

c# - 如何自动将 .NET 函数调用映射到属性?

asp.net-mvc - 在 .NET 中实现基于 REST 的 Web 服务的最佳方法是什么?

azure - Windows Azure AD 同步中缺少 DirectorySyncClientCmd.exe

authentication - Apache Nifi 的 LDAP 身份验证不起作用

asp.net - IIS URL 重写仅在一页中工作

c# - 防伪 token 问题

.net-3.5 - Active Directory中NativeGuid和Guid之间的区别

c# - ASP .NET MVC 5 - 客户地址一对一关系