2017-12-13 13 views
0

私は、Entity Frameworkコアを使用してSQLデータベース上で動作するASP.NETコアアプリケーションを使用しています。しかし、アプリケーションプールユーザーの代わりに、現在IISでWindows認証を使用しているHTTP要求を送信するユーザーとしてSQLにログインしたいと考えています。これはEntity Frameworkによってサポートされていますか?Entity Frameworkコアの偽装Windows ID

私の接続文字列は「Server = MYSERVER; Database = MyDatabase; Trusted_Connection = True;」です。

+0

何がサポートされていますか?認証または何ですか? – Dmitriy

+0

接続文字列にUserIdとPasswordを指定する以外に、EFにSQLへのログインに使用する資格情報を伝える方法はありますか? –

+0

可能、回答https://stackoverflow.com/questions/20216147/entity-framework-change-connection-at-runtime – Dmitriy

答えて

0

これはEFでサポートされているようには見えません。ユーザー@divegaここから:https://github.com/aspnet/Home/issues/1805

EFには認証プロセスを制御する他の方法がありますか?または、データベースへの個々のユーザーアクセスを認可するためのその他の推奨事項はありますか?

いいえ、EFコア(だけでなく、以前のバージョン)、それが基礎となるデータベース接続がデータベースにアクセスすることができるであろうことを前提としてすなわち、この懸念にとらわれない。」

についても説明しましたそこに、限り、Windowsの認証がこのように、必要性に基づいWindowsIdentity.RunImpersonated()を使用して行うことができますが、アクション内のすべてのコードが同期している必要があります使用されているとして(.NETのコアはRunImpersonatedの非同期バージョンを追加するまで)。

public void SaveChangesAsUser(WindowsIdentity identity) 
{ 
    WindowsIdentity.RunImpersonated(identity.AccessToken, this.SaveChanges); 
} 
関連する問題