小编Per*_*erg的帖子

如何使用LDAP使用用户名而不是CN查询ActiveDirectory?

如果我将.NET DirectoryEntry.Path设置为:

LDAP://CN=John Smith,OU=Group Name,DC=example,DC=com
Run Code Online (Sandbox Code Playgroud)

一切都很好,我得到了我需要的DirectoryEntry.但是,我不知道用户的真实通用名称(CN).我只知道他们的用户名"John.Smith".

那么,我该如何查询用户名?我没有成功地尝试了以下所有方法:

LDAP://CN=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://sAMAccountName=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://userPrincipalName=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://userPrincipalName=John.Smith@example.com,OU=Group Name,DC=example,DC=com
LDAP://uid=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://o=John.Smith,OU=Group Name,DC=example,DC=com
Run Code Online (Sandbox Code Playgroud)

.net ldap active-directory

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

为什么在等待任务返回方法时出现InvalidCastException?

(问题的真正标题应该是"为什么我得到一个'无法播放'System.Runtime.CompilerServices.TaskAwaiter`1 [System.Runtime.CompilerServices.VoidTaskResult]'类型的对象'来键入'System.Runtime.CompilerServices .INotifyCompletion'",但遗憾的是这对StackOverflow来说太长了.:)

嗨,

在尝试await执行我的方法时,我遇到了非常奇怪的问题.调用代码看起来像这样(摘录):

    private async Task DownloadAddonFileAsync(dynamic addon, dynamic file, string targetFolder)
    {
        // ...
        await DownloadFileAsync(file, targetFolder, uri);
Run Code Online (Sandbox Code Playgroud)

DownloadFileAsync看起来像这样:

    protected async Task DownloadFileAsync(dynamic file, string targetFolder, string uri)
    {
        // ...
        var fileBytes = await AppLoaderRestClient.GetAsync<byte[]>(uri);
Run Code Online (Sandbox Code Playgroud)

反过来,AppLoaderRestClient.GetAsync()看起来像这样:

    public static async Task<T> GetAsync<T>(string uri)
    {
        // ...
        if (typeof (T) == typeof (byte[]))
        {
            var result = await webClient.DownloadDataTaskAsync(uri);
            return (T) (object) result;
        }
Run Code Online (Sandbox Code Playgroud)

因此,这里实际上有一系列任务 - "内部"任务将是一个任务,然后将其传播到调用者,并转换为任务(即没有结果的任务).我认为这可能导致手头的问题?

如果我将最外面的代码更改为:

        var task = DownloadFileAsync(file, targetFolder, uri); …
Run Code Online (Sandbox Code Playgroud)

.net c# async-await c#-5.0

3
推荐指数
1
解决办法
1418
查看次数

Django-filter 如何更改占位符以替换 [无效名称]?

我创建了一个过滤器来搜索多个字段(我必须只有一个搜索字段),如下所示:

class myFilter(django_filters.FilterSet): full_search = django_filters.CharFilter(name='full_search', method='search_by_full_search')

def search_by_full_search(self, qs, name, value):
    for term in value.split():
        qs = qs.filter(Q(serial__icontains=term) | Q(id__icontains=term) | Q(name__icontains=term))
    return qs

class Meta:
    model = myModel
    fields = ['full_search', ]
Run Code Online (Sandbox Code Playgroud)

但是在 html 中,占位符显示了我的诡计!

<input type="text" name="full_search" class="form-control" placeholder="[invalid name]" title="" id="id_full_search">
Run Code Online (Sandbox Code Playgroud)

是否有可能通过其他方式改变?

python django django-filters

3
推荐指数
1
解决办法
1287
查看次数

如何从主机获取所有 Docker 容器的 IP 地址?

(类似于如何从主机获取 Docker 容器的 IP 地址? ,但略有不同,因为我们对这里的所有容器感兴趣)

我遇到了与我们内部服务器的 IP 冲突,该服务器与 Docker 容器发生冲突。我已经重新配置/etc/docker/daemon.json,将设置设置default-address-pools为另一个网络。但是我现在如何找到七个 Docker 容器中的哪一个正在使用这个特定的 IP 网络呢?

networking docker

3
推荐指数
1
解决办法
5376
查看次数

表单中的 Django Media 资源,如何延迟/异步 JS 资源?

官方文档解释了如何自动为某些小部件添加资产。,从他们的示例:

from django import forms

class CalendarWidget(forms.TextInput):
    class Media:
        css = {
            'all': ('pretty.css',)
        }
        js = ('animations.js', 'actions.js')
Run Code Online (Sandbox Code Playgroud)

它没有描述的是如何使 JS 资源延迟或异步加载,例如

<script defer src="https://myserver.com/static/animations.js">/script>
Run Code Online (Sandbox Code Playgroud)

如何添加deferorasync属性?

django django-forms django-widget

3
推荐指数
1
解决办法
613
查看次数

如何在没有libstd和libcore的情况下从&str转换为* const i8 *?

我的场景是大约15年前有一个用C编写的现有(旧)操作系统。现在,我们正在考虑扩展该系统,使其能够在Rust中编写用户空间程序。

自然,因为这是最近才开始的,所以我们还没有为将其全部移植libstd到我们自己的操作系统而烦恼。因此,我们正在使用#![feature(no_std)]

现在,我正在寻找应该相当简单的东西:将Rust字符串转换为C-null终止的string。应该很简单,但是由于我对Rust缺乏经验,所以我(尚未)能够弄清楚。

为了获得这种经验,足以施加某些限制(例如,最大1024个字节长的字符串;其他所有内容都将被截断)。(我们确实有适当的内存分配,但是我还没有为尝试从Rust处理内存分配而烦恼)

到目前为止,这是我微不足道的尝试:

pub struct CString {
    buffer: [i8; 1024]
}

impl CString {
    pub fn new(s: &str) -> CString {
        CString {
            buffer: CString::to_c_string(s)
        }
    }

    fn to_c_string(s: &str) -> [i8; 1024] {
        let buffer: [i8; 1024];
        let mut i = 0;

        // TODO: ignore the risk for buffer overruns for now. :)
        // TODO: likewise with UTF8; assume that we are ASCII-only.
        for c in s.chars() {
            buffer[i] = c …
Run Code Online (Sandbox Code Playgroud)

string operating-system kernel rust

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