将特定 AD 帐户与实体框架结合使用
我们在一些使用 Windows 身份验证和模拟的 ASP.NET MVC 网站中使用实体框架(4.1 Code First)。
问题是我需要使用特定的 AD 帐户(而不是模拟帐户)连接到 SqlServer。我怎样才能用 EF 做到这一点?
We are using Entity Framework (4.1 Code First) in some ASP.NET MVC websites that are using Windows Authentication and Impersonation.
The problem is that I need to connect to SqlServer with a specific AD account (and not the impersonated one). How can I do that with EF?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这与 EF 并没有真正的关系,因为 EF 只是使用 ADO.NET 连接到数据库,而 ADO.NET 使用当前帐户(集成安全性)或 SQL 帐户(顺便说一句,这是针对您的问题的更清晰的解决方案)。
如果您需要使用特殊帐户,则必须手动模拟该帐户进行某些操作,这实际上没什么问题,因为.NET 不提供直接以其他用户身份登录以获取模拟所需的 Windows 身份的方法。您必须使用小型 P/Invoke to WinAPI。
This is not really related to EF because EF simply use ADO.NET to connect to database and ADO.NET uses either current account (integrated security) or SQL account (which is btw. more clear solution for your problem).
If you need to use special account you must manually impersonate the account for some operations which is actually little problem because .NET doesn't provide method for directly log-in as another user to gets her windows identity needed for impersonation. You must use small P/Invoke to WinAPI.
如果您想这样做,则必须手动管理 EF 连接并手动提供所需的帐户/登录信息。
有关如何执行此操作的一些有用信息:
IF you want to do that you will have to manage the EF connections manually and supply the needed account/login information manually.
Some useful information on how to do this: