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
ここで何をすべきかわかりません。