为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core 识别 Auth + Angular:登录无效

ASP.NET Core 识别 Auth + Angular:登录无效

C#
摇曳的蔷薇 2021-10-09 16:40:55
我目前正在开发具有 ASP.NET Core (2.1) API 服务器/后端和 Angular 单页应用程序前端的应用程序。对于用户身份验证,我使用 ASP.NET Core Identity 以及其中提供的几种默认方法,AccountController用于登录、注销、注册、忘记密码等。我的 Angular 应用程序访问此 API 以执行这些操作。Angular 客户端文件直接托管wwwroot在 ASP.NET Core 应用程序之外。我在localhost:5000.身份验证在 ASP.NET Core 的Startup类中配置如下:services.AddIdentity<ApplicationUser, IdentityRole>(config =>    {        config.SignIn.RequireConfirmedEmail = false;        config.Password.RequiredLength = 8;    })    .AddEntityFrameworkStores<AppDbContext>()    .AddDefaultTokenProviders();// Prevent API from redirecting to login or Access Denied screens (Angular handles these).services.ConfigureApplicationCookie(options =>{    options.Events.OnRedirectToLogin = context =>    {        context.Response.StatusCode = 401;        return Task.CompletedTask;    };    options.Events.OnRedirectToAccessDenied = context =>    {        context.Response.StatusCode = 403;        return Task.CompletedTask;    };});注册和忘记密码都可以顺利运行。调用 API 并采取适当的操作。登录似乎有效:该方法在 Angular 中调用:@Injectable()export class AuthService extends BaseService {  constructor(private httpClient: HttpClient) {    super(httpClient, `${config.SERVER_API_URL}/account`);  }  // Snip  login(login: Login): Observable<boolean> {    return this.httpClient.post<boolean>(`${this.actionUrl}/Login`, login)      .catch(this.handleError);  }  // Snip}
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

为了让身份验证处理程序在请求上运行,您需要app.UseAuthentication();在中间件管道中(在需要它的中间件之前,如 MVC)。


查看完整回答
反对 回复 2021-10-09
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

这是一个远景,但也许令牌需要:在实际令牌前面有“Bearer”(带有空格)。


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信