webdevqa.jp.net

サーバーはリクエストを処理することを望んでいません-ActiveDirectory-C#経由でユーザーを追加します

このページ の例を使用してユーザーをActive Directoryグループに追加しましたが、実行時に「サーバーは要求を処理しません」というメッセージで例外が発生します

dirEntry.Properties["member"].Add(userDn);

11

この質問を解決するのに多くの時間がかかりました。まず第一に、エラーメッセージは冗談のように見えます。第二に、それ以上のものはなく、そのメッセージだけです。

とにかく、私はそれを修正することができました:

  1. userDnにパス全体が含まれていることを確認します(例:_"LDAP://server-address/CN=" + userDn + ",OU=optional,DC=your-domain,DC=com"_。これは実際には非常に重要です。フルパスを指定しないと、-がスローされます。 HRESULTからの例外:0x800050

  2. dirEntry.Properties["member"].Add(userDn);entry.Invoke("Add", new object[] { userDn });に置き換える

次に、ユーザーを削除したかったので、entry.Invoke("Remove", new object[] { userDn });が機能することを期待しました。ただし、この悪魔のようなADは、小文字の "remove"を使用した場合にのみ機能するため、entry.Invoke("remove", new object[] { userDn });が機能しました。

2

グループにメンバーを追加しようとしたときにも同様の問題が発生しました。具体的には、グループをグループに追加しようとして、同じ有用なエラーが発生します 'サーバーは要求を処理することを望んでいません' OPによって提供された回答は私には機能しませんでした。

私にとって、グループをグループに追加できなかった理由は、メンバーを追加しようとしたグループが「グローバル」スコープのグループであるのに対し、「ユニバーサル」スコープのグループである必要があるためです。これが誰かを助けることを願っています。

5
Ju66ernaut

パスがフォレストドメイン名と一致しなかった場合、この一般的なエラーメッセージが表示されました。たとえば、フォレストのドメイン名がad.example.comで、パスがCN=Users,DC=example,DC=netのグループを作成しようとしている場合、一方には.comがあり、もう一方には.netがあります-それらは整列していません。一致するようにグループを修正する必要があります。その場合、グループパスはCN=Users,DC=example,DC=comになります。

0
barrypicker

ldapwiki.com 「サーバーがリクエストを処理することを望まない」の潜在的な原因について説明します。例外のExtendedErrorMessageプロパティを確認して、何が適用されるかを確認してください。私の場合、「00002145:SvcErr:DSID-031A1254、問題5003(WILL_NOT_PERFORM)」です。次の行で問題が解決しました。

ent.Properties["groupType"].Value = 8;

groupTypeを設定できなかったため、ユニバーサルグループをグローバルグループにネストしようとしました。 groupType属性の詳細については、 ldapwiki.com を参照してください。

0
Markus

.properties("distinguished Name")の開始は.properties("cn")とは異なる可能性があるため、注意してください。ユーザーが.properties("cn")に_,_または_;_を使用して作成されている場合、.properties("distinguished Name")の先頭は_​​\,_または_\;_。

.properties("cn")を使用して見つけたユーザーをグループに追加しようとすると、エラーが発生する可能性があります。

0
David Busschots