【发布时间】:2017-10-01 01:55:39
【问题描述】:
我有一个带有 ef6 代码的 WebAPI,首先设置和工作。在应用启动中,我们有dbmigrator.Update(),它将任何待处理的迁移应用到数据库。
更改连接字符串以删除用户名和密码并改为提供访问令牌后,dbmigrator.Update() 失败并出现错误:
用户“”登录失败
如何确保 dbmigrator 使用 Azure SQL 访问令牌而不是连接字符串中的用户名/密码?
编辑 1:
对 dbcontext 构造函数所做的更改是从
DbContext() : base("nameofConnString"){}
到
DbContext() : base(GetSQLConn(), true)
{
Database.SetInitializer<DbContext>(null);
}
使用GetSQLConn(),我正在检索一个没有 uname/pwd 的连接并将 accesstoken 附加到它并返回该连接!
编辑 2:
private static SqlConnection GetSQLConn()
{
var accessToken = TokenFactory.AcquireToken();
var connString = ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString;
var conn = new SqlConnection(connString)
{
AccessToken = accessToken,
};
return conn;
}
【问题讨论】:
-
是的,先生,我已经浏览了链接,事实上,这是我继续使用 sql 访问令牌更改的灵感。但是 DbMigrator 仍然失败。我会在那里请求更多信息,但我没有足够的声誉来评论现有帖子。
-
能分享一下GetSQLConn方法代码吗?
-
@ChetanRanpariya 添加了用于 GetSQLConn 的代码
-
@ChetanRanpariya 是的,实际上 dbcontext 适用于我所有表上的 CRUD 操作,只是这个迁移器不起作用!
标签: c# sql entity-framework azure asp.net-web-api