0

この奇妙なエラーメッセージが表示されました:

サーバーとの安全な接続を確立できません

ADアカウントでログインしようとしたとき。ASP.NET WebフォームでLDAPに接続しようとしましたが、そこでは正常に機能しているようで、問題の原因となる接続文字列はないと思います。

しかし、MVCを使用していると、パーサーエラーが表示されます。私も周りを見回してグーグルしようとしましたが、正しい解決策を見つけることができないようです。構成エラーによると、ソースエラーは次のとおりです。

<add name="AspNetActiveDirectoryMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider" 
     connectionStringName="ADConnectionString" 
     connectionUsername="cn=actualUser" 
     connectionPassword="actualUsersPassword" />`

これが私のweb.config

<connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://IPadress/DC=example,DC=test"/>
</connectionStrings>
<system.web>
    <authentication mode="Forms">
      <forms name=".ADAuthCookie" loginUrl="~/Account/LogOn" timeout="15" 
             slidingExpiration="false" protection="All" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
      <providers>
        <clear/>
        <add name="AspNetActiveDirectoryMembershipProvider" 
             type="System.Web.Security.ActiveDirectoryMembershipProvider" 
             connectionStringName="ADConnectionString" 
             connectionUsername="cn=actualUser" connectionPassword="actualUsersPassword" />
      </providers>
    </membership>
    <trust level="Full" />
    <pages>
       <namespaces>
          <add namespace="System.Web.Mvc" />
          <add namespace="System.Web.Mvc.Ajax" />
          <add namespace="System.Web.Mvc.Html" />
          <add namespace="System.Web.Routing" />
       </namespaces>
    </pages>
</system.web>

これが私のクラスです。「if(Membership.ValidateUser(model.UserName、model.Password)){」からエラーメッセージが表示され、web.configのメンバーシッププロバイダーを指しています。

    [HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
   if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(model.UserName, model.Password))
        {
            FormsAuthentication.SetAuthCookie(model.UserName,Convert.ToBoolean(model.Password));
            if ((!String.IsNullOrEmpty(returnUrl)))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
4

1 に答える 1

0

Windows 認証モードを Windows に設定しようとしましたか?

<authentication mode="Windows" />
于 2012-04-30T17:15:45.380 に答える