0

C# ASP.NET を使用して MVC2 アプリケーションを開発しています。

私のアプリケーションでは、ユーザー認証に ActiveDirectoryMembershipProvider を使用しています。以下は、私の web.config ファイルのスニペットです。

接続文字列でグローバル カタログ ポート 3268 を使用すると、「GC ポートの LDAP 接続は Active Directory に対してサポートされていません」というエラーが表示されます。このエラー メッセージについて Google で検索しましたが、適切な解決策が見つかりませんでした。多くの人がポート 389 の使用を提案しており、コードの変更を提案している人もいます。しかし、GC ポートを使用して、ユーザーが別のフォレストに接続できるようにしたいと考えています。

いくつかの観察:

  • 同じ接続文字列 (ポート 3268 を使用) は、私の会社の他のアプリケーションでも完全に機能しています。
  • ポート 389 を指すように接続文字列を変更すると、完全に機能します。つまり、ローカル ドメインに属するユーザーはログインできます。ただし、別のドメインのユーザーはログインできません。
  • AcconuntModel と AccountController にブレークポイントを設定しました。接続文字列がポート 3268 を指している場合、Membership.Provider は「ConfigurationErrorsException」をスローしました。

誰かがこの問題を解決するのを手伝ってくれれば、とても助かります。

web.config:

 <add name="ADConnectionString" connectionString="LDAP://myADServer.abc.ad:389/DC=abc,DC=ad" /> 

<membership defaultProvider="MyADMembershipProvider">
      <providers>
        <clear />
        <add connectionStringName="ADConnectionString" maxInvalidPasswordAttempts="1000" connectionUsername="ldapuser@abc.ad" connectionPassword="password" connectionProtection="None" enableSearchMethods="True" name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <add name="MySqlMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider,MySql.Web,Version=6.5.4.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" connectionStringName="MySqlMembershipConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" autogenerateschema="true" />
      </providers>
    </membership>

    <!-- Added for custom provider -->
    <roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="DDMS_Custom_RoleProvider">
      <providers>
        <clear />
        <add applicationName="/" connectionStringName="ddms_dataEntities2" name="DDMS_Custom_RoleProvider" type="DDMS_sourcecode.Utilities.DDMS_Custom_RoleProvider, DDMS_sourcecode" />
        <add connectionStringName="ApplicationServices" applicationName="/" autogenerateschema="true" name="MySqlRoleProvider" type="MySql.Web.Security.MySQLRoleProvider,MySql.Web,Version=6.5.4.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" />
      </providers>
    </roleManager>
4

1 に答える 1