0

Active Directoryドメインを介したWindows認証を備えたasp.net mvc 4 Web APIサイトがあります。その一部は、エンティティ フレームワークを介して SQL サーバーにクエリを実行する API コントローラーです。Asp.net は適切に調整されています。なるほど、そのユーザーは API メソッド内で偽装されています。ただし、EF は匿名の資格情報を使用してデータベースにクエリを実行します。

web.config の一部

  <authentication mode="Windows" />
    <identity impersonate="true" />

    <authorization>
      <deny users="?" />
    </authorization>

メソッドの一部:

    var winId = (WindowsIdentity) HttpContext.Current.User.Identity;            
    WindowsImpersonationContext ctx = null;
    try
    {
        ctx = winId.Impersonate();

        var ret = DAL.DBPort.Instance.GetDivisionStructure();
        // ret.Name = identy.AuthenticationType.ToString();
        return ret;
    }
    catch (Exception exception)
    {
        return null;
    }
    finally
    {
        if (ctx != null)
        {
            ctx.Undo();
        }
    }

m constantly getting "underlying provider failed to open". While having impersonation, asp.net still uses anonymous or system account in database connection. Donここで何をすべきかわかりません。

4

0 に答える 0