我有以下内容:-
我有一个用于存储SecurityGroup用户的表。该表将包含SecurityGroupID +用户SamAccountName。
然后检查登录用户是否在给定的安全组中,我得到登录用户名,如下所示:-
string ADusername = httpContext.User.Identity.Name.Substring(httpContext.User.Identity.Name.IndexOf("\\") + 1);
然后检查上面的Adusername字符串是否在SecurityGroup表内的SamaccountName中。因此,在这种情况下,我将SamAccountName视为与“httpContext.User.Identity.Name.Substring(httpContext.User.Identity.Name.IndexOf("\\") + 1);”
相同我测试了这种方法,并且效果很好,但是不确定这种方法将来是否会引起问题。所以在这些问题上我需要帮助:-
SameAccountName具有以下格式“ FName.LastName”,例如John.Smith。因此,假设将来我们有两个用户具有相同的名字和姓氏。因此SamAccountName可以唯一地标识任何用户吗?
AD如何填充SamAccountName?例如,在下图中,我认为SAMAccountName是用户登录名(Windows 2000之前的版本)?这个对吗。我可以在哪里控制其值,而不必是Firstname.Lastname?
目前,我们AD中的所有用户的“httpContext.User.Identity.Name.Substring(httpContext.User.Identity.Name.IndexOf("\\") + 1)”
都将等于其SamAccountName。但是这个规则会永远是真的吗?
SamAccountName是否始终唯一标识用户?如果是的话,还会跨域缩进吗?
string ADusername = httpContext.User.Identity.Name.Substring(httpContext.User.Identity.Name.IndexOf("\\") + 1);
在广告中确切代表什么?谢谢
您可以使用以下方法检查用户是否是组的成员:
sAMAccountName属性在域中必须唯一,但在林中必须唯一。因此John.Smith
可以在AD林中多次存在。
请参阅此处
sAMAccountName和UserPricncipalName不必为sn和namedName。您可以使用任何值。创建帐户时,您可以控制这些值。以后您也可以更改它们。