我有以下内容: -
我有一个用于存储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是用户登录名(pre-windows 2000)?它是否正确。我可以控制它的值,而不必是Firstname.Lastname?
Currenly 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);
在AD中的确切代表是什么?由于
答案 0 :(得分:0)
你使用什么样的ldap?活动目录??如果是这样,那么您可以使用以下类来检查用户是否是组的成员
sAMAccountName是一个必须在域中唯一但不在林中的属性。所以John.Smith可以在AD Forest中存在两次。
见这里
sAMAccountName和UserPricncipalName不必是sn和givenName。您可以使用任何值。您可以在创建帐户时控制这些值。之后你也可以改变它们。