前提・実現したいこと
フロントはBlazor Webassembly,バックエンドはASP.NET Core web apiで開発しています。
環境は.NET Core 3.1 + Ubuntu 20.04 環境です。
バックエンドでActive Directoryに問い合わせを行っていますが日本語で検索をかけるところで躓いています。
// LDAP接続情報 LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier("AD serve", true, false); // LDAP接続用ID情報 NetworkCredential credential = new NetworkCredential("XXXXXX@XXXXXX", "YYYYY"); connection = new LdapConnection(identifier, credential, AuthType.Basic); //Shift-JIS変換用 System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); string utf8str = @"(name=*テスト*)"; //utf8str = "(sAMAccountName = 123456)"; byte[] bytesData = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(utf8str); Encoding sjisEnc = Encoding.GetEncoding("shift_jis"); string sjis = sjisEnc.GetString(bytesData); schRequest.Filter = utf8str; //schRequest.Filter = sjis;
上記にようにしていてWindows上のデバッグではnameで検索すると結果がヒットしますが、Ubuntu上で動かすと結果が0件になります。
しかし半角のみのsAMAccountName だとWindows上は当然ですが、Ubuntu上でも結果が返ってきます。
Filterに渡す値を上記ではshift_jisにしていますがUTF-8に変更してみたりしましたが駄目でした。
またldapsearchの表示がbase64なのでそのままbase64の値をnameに設定してみたりもしました。
しかし結果は返りませんでした。
Active Directoryに対し日本語で検索をかけるにはどうすればよいのでしょうか?
ご教授いただければ幸いです。
あなたの回答
tips
プレビュー