【发布时间】:2019-08-26 17:05:51
【问题描述】:
我继承了一个同时使用 Web API 和 MVC 前端的 ASPnetzero 应用程序。 API 通过 Bearer 进行身份验证,前端通过 AbpIdentity (Cookies) 进行身份验证。几天前,我勇敢地决定更新我的 nuGet 包。该更新伴随着从 .netCore v1 到 v2 的升级。但是在 JwtBearer 中间件过时后,我在身份验证方面遇到了一些困难。我可以使用 cookie 进行身份验证,但不能使用 Bearer Tokens。
我几乎尝试了所有方法。使用多种身份验证方法意味着一次只能使用一种。
在 Startup.cs 我有以下(sn-ps):
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddAbpIdentity<Tenant, User, Role>()
.AddUserManager<UserManager>()
.AddRoleManager<RoleManager>()
.AddSignInManager<SignInManager>()
.AddClaimsPrincipalFactory<UserClaimsPrincipalFactory>()
.AddDefaultTokenProviders();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
AuthConfigurer.Configure(app, _appConfiguration);
}
然而,这是一个自我回答的问题,我希望我能帮助任何有类似或相同情况的人,因为我已经制定了自己的解决方案。这个想法是让应用程序使用 Bearer 令牌(仅在使用 API 时)和 cookie(仅在使用 MVC 时)。
当 MVC 对 API 进行 XHR 调用以获取要在前端显示的数据时,我也遇到了挑战。这意味着 API 还需要使用 Cookie(但仅适用于 MVC 用户)。
【问题讨论】:
标签: c# .net asp.net-core-2.0 aspnetboilerplate