2017-09-19 26 views
0

Visual Studio 2017内の 「ASP.NET Core Application Angularテンプレート」にASP.NET Identity 3.0シングルユーザー認証を追加しようとしています。私はここにGitHubリポジトリを作成しました:ASP.NETアイデンティティ3.0認証クッキーが作成されない

https://github.com/DapperDanH/NutmegStackoverflow

本当にまだこのプロジェクトにあまりありません。高レベルから、これは私がやったことです:

  1. .NET CoreとASP.NET Core 2.0で新しい "ASP.NET Core Webアプリケーション"を作成し、Visual Studio内でAngularテンプレートを選択しました。
  2. 既存のデータベースからASP.Identity、EF Core、スキャフォールドコードの最初のファイルを追加しました。
  3. "ASP.NET Core Web Application"のコントローラーとビューの多くを "Individual User Account"サンプルプロジェクトを使用してWebアプリケーションテンプレートと共にコピー&ペーストしました。
  4. 私は私の目標は、認証部分についての標準的なASP.NET MVCを使用することである

(ETC、添加service.AddIdentity及びapp.UseAuthentication())Startup.cs修飾。

すべてが機能するようです。 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

  • ランアップデート - データベース:ここ

    1. ダウンロードプロジェクト。
    2. アプリケーションを実行して、Nutmeg.Webがスタートアッププロジェクトであることを確認します。
    3. 登録ボタンをクリックし、新しいユーザーを登録します。 dbを確認し、ユーザーが追加されたことを確認します。
    4. ログインをクリックします。手順4で使用したのと同じ情報を入力します。クッキーが作成されましたか?

    誰かが私を助けることができます。この長い記事を読んでくれてありがとう!

    おかげで、 ダン

  • +0

    私は、認証Cookieを一貫して作成し、ウェブプロジェクトをHTTPSに切り替えるようにアプリケーションを取得できました。なぜそれが問題なのかわからないが、それを修正するようだ。誰でも説明できる? – DapperDanh

    答えて

    0

    私は一貫して認証クッキーを作成するためのアプリケーションを取得することができたが、HTTPSに私のWebプロジェクトを切り替えます。なぜそれが問題なのかわからないが、それを修正するようだ。誰でも説明できる?

    関連する問題