前提・実現したいこと
AngularでASP.NET Core Webアプリケーションを作成しており、
ログイン・ログアウト機能を実装したいです。
発生している問題・エラーメッセージ
ユーザー登録はできるのですが、ログインをすることができず困っています。
<行ったこと>
- VisualStudio2019でAsp.Net Core WebアプリケーションのAngularテンプレート(個別のユーザーアカウントで認証)でプロジェクトを作成しました。
- その後、パッケージマネージャーコンソールから次のコマンドを実行し、マイグレーションを行いました。
・Add-Migration InitialCreate
・Update-Database
- ビルドしデバッグを実行して立ち上げた後、「Registry」でユーザーを登録。
- 作成したユーザーのメールアドレスとパスワードでログインを試みるものの、
Invalid login attempt.
と出てしまいログインができません。
※ DBにユーザーが登録されているのは確認しました。また、入力内容はコピペなので誤りもないかと思います。
該当のソースコード
プロジェクトを作成後、マイグレーションを実行した以外は何もしておりません(きっと何かを加える必要があるかと思うのですが・・・)。下記ソースコードはすべて namespaceを省略しています。
Startup.cs
C#
1public class Startup 2{ 3 public Startup(IConfiguration configuration) 4 { 5 Configuration = configuration; 6 } 7 8 public IConfiguration Configuration { get; } 9 10 public void ConfigureServices(IServiceCollection services) 11 { 12 services.AddDbContext<ApplicationDbContext>(options => 13 options.UseSqlServer( 14 Configuration.GetConnectionString("DefaultConnection"))); 15 16 services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true) 17 .AddEntityFrameworkStores<ApplicationDbContext>(); 18 19 services.AddIdentityServer() 20 .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(); 21 22 services.AddAuthentication() 23 .AddIdentityServerJwt(); 24 services.AddControllersWithViews(); 25 services.AddRazorPages(); 26 27 services.AddSpaStaticFiles(configuration => 28 { 29 configuration.RootPath = "ClientApp/dist"; 30 }); 31 } 32 33 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 34 { 35 if (env.IsDevelopment()) 36 { 37 app.UseDeveloperExceptionPage(); 38 app.UseDatabaseErrorPage(); 39 } 40 else 41 { 42 app.UseExceptionHandler("/Error"); 43 44 app.UseHsts(); 45 } 46 47 app.UseHttpsRedirection(); 48 app.UseStaticFiles(); 49 if (!env.IsDevelopment()) 50 { 51 app.UseSpaStaticFiles(); 52 } 53 54 app.UseRouting(); 55 56 app.UseAuthentication(); 57 app.UseIdentityServer(); 58 app.UseAuthorization(); 59 app.UseEndpoints(endpoints => 60 { 61 endpoints.MapControllerRoute( 62 name: "default", 63 pattern: "{controller}/{action=Index}/{id?}"); 64 endpoints.MapRazorPages(); 65 }); 66 67 app.UseSpa(spa => 68 { 69 70 spa.Options.SourcePath = "ClientApp"; 71 72 if (env.IsDevelopment()) 73 { 74 spa.UseAngularCliServer(npmScript: "start"); 75 } 76 }); 77 } 78} 79
ApplicationDbContext.cs
C#
1public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser> 2{ 3 public ApplicationDbContext( 4 DbContextOptions options, 5 IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions) 6 { 7 } 8}
試したこと
- マイクロソフトの公式に当該の内容かと思われる「SPAs の認証と承認」というページがあったので読み、書いてあるコードの一部を実行しました。ただ読んでいても理解ができない部分も多く、ちゃんと実行できたかは心配です。
補足情報(FW/ツールのバージョンなど)
実行環境は Windows10、 VisualStudio2019, ASP.NET Core3.1 です。
認証機能がついたASP.NETのWebアプリケーションを作るのは初めてなので、認証機能実装の壁を越えられずにいます・・・。どなたにご教示いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー