我目前正在开发具有 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 回答
- 0 关注
- 292 浏览
添加回答
举报
0/150
提交
取消