我有以下带有两棵树的AD森林:
Domain1的DNS名称是domain1.local.Domain4的DNS名称是domain4.local.
在每个域中都有一个启用了全局编录的域控制器.
我正在尝试通过其SID从域4获取UserPrincipal.该程序从Domain2中的计算机运行.
我使用以下代码:
// Running on some machine from Domain2
PrincipalContext context = new PrincipalContext(
ContextType.Domain,
"dc2.domain2.domain1.local:3268", // Using Global Catalog port and local domain controller
"DC=domain1, DC=local", // I guess the problem is here
"domain1\\super-admin", // User has all necessary rights across all domains
"password");
UserPrincipal principal = UserPrincipal.FindByIdentity(context, "SID-OF-A-USER-FROM-DOMAIN-4");
Run Code Online (Sandbox Code Playgroud)
在我的情况下,principal为null(找不到用户).
在一个树(domain1及其子代)中搜索可以正常使用上面的代码片段,但我不知道如何修改PrincipalContext构造函数的容器参数以真正启用林范围的搜索.
最初我认为"DC = domain1,DC = local"指向了林根,但似乎我在这里有误解.
我知道如果我将容器路径更改为"DC = domain4,DC = local",那么搜索将起作用,但仅适用于domain4中的用户.
但我真的需要这样一个指向整个林的容器路径,因此我可以使用相同的PrincipalContext从林中的任何域搜索用户.
任何帮助都表示赞赏,特别是如果有人能澄清我的要求是否可以实现.
我有以下 Dockerfile
FROM ubuntu:14.04
EXPOSE 8000
# Install nginx
RUN apt-get update -q \
&& apt-get install --no-install-recommends --no-install-suggests -y -q \
nginx \
&& rm -rf /var/lib/apt/lists/*
COPY ./nginx.conf /etc/nginx/
COPY ./index.html /usr/share/nginx/test/
RUN groupadd -r webgroup \
&& useradd -r -m -g webgroup webuser \
&& touch /run/nginx.pid \
&& chown -R webuser:webgroup /var/log/nginx /var/lib/nginx /run/nginx.pid
USER webuser
CMD nginx
Run Code Online (Sandbox Code Playgroud)
当我运行它,我得到许可被拒绝上/var/log/nginx:
mikhails-mbp:test-docker-nginx mkuleshov$ docker run -p 8000:8000 mytest
nginx: [alert] could not open error …Run Code Online (Sandbox Code Playgroud) 我有以下类层次结构
class A
{
public virtual string M()
{
return M(String.Empty);
}
public virtual string M(string s)
{
return M(s, false);
}
public virtual string M(string s, bool flag)
{
// Some base logic here
}
}
class B:A
{
public override string M(string s, bool flag)
{
string baseResult = base.M(s);
// Derived class logic here
}
}
Run Code Online (Sandbox Code Playgroud)
B类可用于两种情况:
1)
A b = new B();
string result = b.M();
Run Code Online (Sandbox Code Playgroud)
2)
B b2 = new B();
string result2 = b2.M(someString, …Run Code Online (Sandbox Code Playgroud)