2016-04-14 22 views
2

私たちはASP.NET vNextプロジェクトに取り組んでおり、簡単なクッキーベースの認証を実装しています。Auth-Cookieと(ASP.NET)セッションを同期させておく方法

ユーザーが認証されたことを確認するために認証クッキーを使用することを考えました。

HttpContext.Authentication.SignInAsync(); 

ユーザーオブジェクト自体がセッションキャッシュ(セッション)に保存されます。

  • これは実際に使用することができるのでしょうか、それとも完全に間違った方法を考えていますか?
  • 基本的な考え方が正しい場合、auth-cookieとセッションを同期させておくにはどうすればよいですか? (セッションキャッシュ内のユーザオブジェクトを持つ認証されていないユーザは悪いことがあります)

ユーザオブジェクトだけでなくセッションにも格納する必要があることに注意してください。そこに保管すべき情報がたくさんあります(ユーザーが認証されている場合のみ)。

ありがとうございました!

+0

進歩しましたか? –

答えて

1

Cookie middlewareを使用してリクエスト間でユーザーを維持し、Claims-based authorizationを使用して、ユーザーについて覚えておきたい追加情報を保持するオプションがあると考えていますか?

あなたのようなインスタンスのクッキーのミドルウェアを追加したい設定方法におけるスタートアップクラスでそう

  app.UseCookieAuthentication(options => 
     { 
      options.AuthenticationScheme = "Cookies"; 
      options.AutomaticAuthenticate = true; 
      options.AutomaticChallenge = true; 
      options.LoginPath = new PathString(@"/account/login"); 
      options.AccessDeniedPath = new PathString(@"/account/accessdenied"); 

     }); 

そしてConfigureServicesにあなたはインスタンスのように、この必要と主張設定することができます。

services.AddAuthorization(options => 
{ 
    options.AddPolicy("EmployeeOnly", policy => policy.RequireClaim("EmployeeNumber")); 
}); 

これをセットアップする方法についての完全なドキュメントへのリンクをご検討ください。

関連する問題