我正在开发一个 Intranet asp.net mvc web 应用程序。而且我从不同的类中获得了不同的用户名格式。例如,在 Create Post 操作方法中,我正在获取当前登录用户的用户名,并将其分配给 CreatedBy 字段,如下所示:-
public ActionResult Create(Group group)
{try
{if (ModelState.IsValid) {
Group.CreatedBy = User.Identity.Name;
repository.InsertOrUpdateGroup(group);
repository.Save();
repository.InsertOrUpdateAudit(auditinfo);
User.Identity.Name 将类似于:-domainname\username
如果在另一种操作方法上,我想检索所有 Active Directory 用户名的列表,我使用以下内容:-
List<DomainContext> results = new List<DomainContext>();
using (var context = new PrincipalContext(ContextType.Domain, "WIN-SPDEV"))
using (var searcher = new PrincipalSearcher(new UserPrincipal(context))) {
var searchResults = searcher.FindAll();
foreach (Principal p in searchResults) {
DomainContext dc = new DomainContext();
dc.DisplayName = p.DisplayName;
dc.userGuid = p.UserPrincipalName;
然后 UserPrincipleName 将是user1@domainname.local
而不是doaminname\username
。因此,通过这种方式,我将拥有代表同一个活动目录用户的不同字符串。那么有没有办法让所有用户名成为标准,不管我分配或检索它们的方法是什么?