Visual Studio 2017内の 「ASP.NET Core Application Angularテンプレート」にASP.NET Identity 3.0シングルユーザー認証を追加しようとしています。私はここにGitHubリポジトリを作成しました:ASP.NETアイデンティティ3.0認証クッキーが作成されない
https://github.com/DapperDanH/NutmegStackoverflow
本当にまだこのプロジェクトにあまりありません。高レベルから、これは私がやったことです:
- .NET CoreとASP.NET Core 2.0で新しい "ASP.NET Core Webアプリケーション"を作成し、Visual Studio内でAngularテンプレートを選択しました。
- 既存のデータベースからASP.Identity、EF Core、スキャフォールドコードの最初のファイルを追加しました。
- "ASP.NET Core Web Application"のコントローラーとビューの多くを "Individual User Account"サンプルプロジェクトを使用してWebアプリケーションテンプレートと共にコピー&ペーストしました。
- 私は私の目標は、認証部分についての標準的なASP.NET MVCを使用することである
すべてが機能するようです。 Webアプリケーションが起動し、ホームページが表示されます。私は "登録"と "ログイン"ページへのリンクを作成しました。私は正常に新しいユーザーを登録することができ、新しいユーザーはデータベースに追加されます。ユーザーは、ログインページで自分の情報を入力することができ、かつAccountController.Login方法はPasswordSignInAsyncメソッドに成功を返します。
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
問題は、何の認証クッキーが作成されませんされています。さて、クッキーが作成されていない時間の約99%ですが、今は毎回作成されています。
問題はStartup.csにある可能性があります。ここに私が使用しているコードはあります:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<NutmegContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<User, AppRole>()
.AddEntityFrameworkStores<NutmegContext>()
.AddDefaultTokenProviders();
// Add application services.
services.AddTransient<IEmailSender, EmailSender>();
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true
});
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
}
私は本当に誰かが私を助けることを願っています。この動作を確認するには、次のデフォルトのプロジェクトがNutmeg.Dataで確認してパッケージマネージャコンソールでhttps://github.com/DapperDanH/NutmegStackoverflow
- ダウンロードプロジェクト。
- アプリケーションを実行して、Nutmeg.Webがスタートアッププロジェクトであることを確認します。
- 登録ボタンをクリックし、新しいユーザーを登録します。 dbを確認し、ユーザーが追加されたことを確認します。
- ログインをクリックします。手順4で使用したのと同じ情報を入力します。クッキーが作成されましたか?
誰かが私を助けることができます。この長い記事を読んでくれてありがとう!
おかげで、 ダン
私は、認証Cookieを一貫して作成し、ウェブプロジェクトをHTTPSに切り替えるようにアプリケーションを取得できました。なぜそれが問題なのかわからないが、それを修正するようだ。誰でも説明できる? – DapperDanh