最近,我一直在实施类似于示例here的自定义ExtendedUserPrincipal
类。对我来说唯一的问题是基于现有的基类实例(例如UserPrincipal.Current
)构造新实例,以将现有用户主体映射到我的扩展版本。
目前,我正在使用显式创建域上下文:
var ctx = new PrincipalContext(ContextType.Domain, "domain.name");
return ExtendedUserPrincipal.FindByIdentity(ctx,
IdentityType.Sid, user.Sid.ToString());
我想在不明确指定域上下文的情况下构建它,例如
return Extended.UserPrincipal.FindByIdentity(SomeHelper.GetDomainContext(user),
user.Sid, user.Sid.ToString());
设计是否可能或禁止(可能存在安全问题)?user.Context
在这里毫无帮助。