小编Aid*_*des的帖子

如何在具有多个树的AD林中的全局编录中搜索用户

我有以下带有两棵树的AD森林:

  1. 域1.有两个子域Domain2和Domain3
  2. Domain4.没有子域名.

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从林中的任何域搜索用户.

任何帮助都表示赞赏,特别是如果有人能澄清我的要求是否可以实现.

c# dns active-directory userprincipal

6
推荐指数
1
解决办法
8495
查看次数

在 Docker 容器中以非 root 身份运行 nginx 会出现权限被拒绝错误

我有以下 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)

linux nginx permission-denied docker

5
推荐指数
1
解决办法
9274
查看次数

如何在c#中调用基本重载方法?

我有以下类层次结构

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)

c#

4
推荐指数
1
解决办法
4162
查看次数