我有3個項目組成的解決方案,首先是數據訪問層(其中模型和數據庫上下文被定義),另外兩個是Asp.net MVC 5和Asp。淨Web Api 2項目。Asp.net web API 2身份驗證身份
對於身份驗證和授權我使用Asp.net的身份,我已經建立了這樣的(在我的DAL項目):
public class DatabaseContext : IdentityDbContext<User>
{
public DatabaseContext()
: base("DefaultConnection")
{
Configuration.LazyLoadingEnabled = true;
}
public DbSet<IdentityUser> IdentityUsers { get; set; }
/*
Other DbSets ...
*/
}
我的用戶類擴展IdentityUser。
在我的ASP.net項目,我已經改變了一下帳戶控制器,它與我的數據庫上下文的作品,這裏是我改變了相關部分:
[Authorize]
public class AccountController : Controller
{
public AccountController()
: this(new UserManager<User>(new UserStore<User>(new DatabaseContext())))
{
}
public AccountController(UserManager<User> userManager)
{
UserManager = userManager;
}
public UserManager<User> UserManager { get; private set; }
}
而這部分工作正常。所以我的問題是,爲了使我的Web API項目能夠與我的實體User和我的數據庫上下文一起工作,我必須做些什麼改變,因此爲了使用API,用戶必須登錄? (並且當然用戶可以選擇通過API註冊)。
I.E.我想通過使用我的數據庫上下文和擴展Identity用戶類的class User來爲web api 2啓用授權和身份驗證。
UPDATE
我一直試圖做的是這樣的:我已經更換了所有IdentityUser班在我的Web API 2項目,我班的用戶,但對行(當我嘗試登錄) :
User user = await userManager.FindAsync(context.UserName, context.Password);
我得到錯誤:
System.Data.SqlClient.SqlException:無效的對象名稱dbo.AspNetUsers「。
這種方法適用於我的asp.net MVC項目。