@Michael Liuの答えは正しいですが、この分野での実用的な知識が限られている初心者(私のような)には簡単に理解できません。この回答は、マイケルの回答を補足することを目的としています。
"full"以外の信頼レベルを使用するように web.config が構成されている場合
<trust level="Full"/>
独自のポリシー ファイルを作成しないと、Active Directory に接続できません。独自のポリシー ファイル (たとえば、「myPolicyFile.config」という名前) を作成したら、ASP.NET アプリケーションが Active Directory に接続できるように、それをカスタマイズする準備が整います。
必要な変更は次のとおりです。
web.config で、カスタム ポリシー ファイルを使用するように Web サイトを構成します。
<system.web>
...
<securityPolicy>
<trustLevel name="myMediumPolicy" policyFile="myPolicyFile.config"/>
</securityPolicy>
<trust level="myMediumPolicy"/>
...
</system.web>
次に、myPolicyFile.config ファイルに、次のように「SecurityClass」および「IPermission」エントリを追加します。
<configuration>
...
<PolicyLevel version="1">
<SecurityClasses>
....
<SecurityClass Name="DirectoryServicesPermission" Description="System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
....
</SecurityClasses>
<NamedPermissionSets>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net">
...
<IPermission
class="DirectoryServicesPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution, ControlThread, ControlPrincipal, RemotingConfiguration, UnmanagedCode"
/>
...
</PermissionSet>
</NamedPermissionSets>
</PolicyLevel>
...
</configuration>
注: <IPermission class="SecurityPermission"... /> ノードが既に存在している可能性があります (myPolicyFile.config ファイルに基づいたシステム定義の信頼レベル ファイルによって異なります)。既に存在する場合は、", UnmanagedCode" というテキストを "Flags" 属性に追加するだけです。まだ存在しない場合は、上記の例をコピーして "ASP.Net" NamedPermissionSet に貼り付けます。
最後に、変更を保存して Web サイトをリロードします。あなたは行く準備ができているはずです!