我正在尝试使用.NET Core 2.0 Angular模板(在Visual Studio 2017中(实现身份验证。我尝试使用ASP.NET身份尝试遵循此教程
我会马上被添加到startup.cs的dbcontext。
startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDbContext<EduSmartContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
添加applicationdbcontext时,我会在startup.cs中获得此错误:
类型的'edusmart.data.applicationdbcontext'不能用作类型 通用类型或方法中的参数" tcontext" 'entityFrameworkServiceCollectionExtensions.adddbContext(IservCollection, 动作,Servicelifetime,ServicelifTime('。 没有隐含的参考转换 'edusmart.data.applicationdbcontext'to 'Microsoft.entityFrameWorkCore.dbContext'。Edusmart C: src edusmart startup.cs 30 Active
我正在寻找以下三个选项之一:
- 解决上述错误。
- 通过 使用ASP.NET身份实现身份验证的步骤教程
- 建议使用Angular ASP.NET核心应用程序进行更好的方法链接的资源
而没有看到更多代码,我猜
1.解决上述错误。
指出您的ApplicationDbContext
不是从dbcontext得出的。我认为将您的EduSmartContext
实体移至ApplicationDbContext
将为您完成工作。
public class EduSmartContext : IdentityDbContext<ApplicationUser>
{
public EduSmartContext(DbContextOptions<EduSmartContext> options)
: base(options)
{
}
public DbSet<Poco1> Poco1s { get; set; }
...
...
2.链接到更清晰的逐步教程,以使用ASP.NET Identity
实现身份验证
您最好使用ASP.NET Core WebAPI搜索基于令牌的身份验证。https://logcorner.com/token-lase-authentication-using-asp-net-web-api-core/
3. uggest使用链接资源
对Angular ASP.NET核心应用进行身份验证的更好方法
如果您愿意对此进行投资,我建议您使用也称为STS(安全令牌服务器(的身份验证服务器例如IdentityServer4或OpenIDDICT如果有身份服务员,此文章可能会有所帮助:
https://damienbod.com/2016/10/01/indistityserver4-webapi-and-angular2-in-a-a-single-asp-net-core-project/