2016-08-30 9 views
0

の主張を読み取ることができません私はこのようなstartup.auth.csで定義されてApplicationCookie認証がありますウェブAPIは、私がアイデンティティ2.0</p> <p>でWEBAPI 2.0を使用していますリクエスト

 app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Account/Login"), 
      CookieName = "MyAppCookieName" 
     }); 

     AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier; 

を私がでアクションを持っていますAccountController to login:

 var claims = new List<Claim>(); 

     // create required claims 
     claims.Add(new Claim(ClaimTypes.NameIdentifier, "harryb")); 
     claims.Add(new Claim(ClaimTypes.Name, "harryb")); 

     var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); 

     AuthenticationManager.SignIn(new AuthenticationProperties() 
     { 
      AllowRefresh = true, 
      IsPersistent = true, 
      ExpiresUtc = DateTime.UtcNow.AddDays(7), 
     }, identity); 

     return Ok(); 

これまでのところ、ログインリクエストでクッキーが受信されました。しかし、私は新しい要求をすると、要求は空ですか?私はstandartログインとテーブルなどを使用したくない。私はちょうど偽のログインにいくつかの主張し、次の要求でそれを読む..私は行方不明ですか?

答えて

0

Finnalyが...間違って何が起こっているのか、ここから が見つかりました:http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api

は、この検索:特に

を、あなたのアプリケーションのMVC部分は、クッキーで認証情報を格納フォーム 認証を使用する場合があります。 Cookieベースの 認証では、 CSRF攻撃を防止するために、偽造防止トークンを使用する必要があります。 Web APIが に偽造防止トークンを送信するための便利な方法がないため、Web APIの問題です。 SuppressDefaultHostAuthenticationを呼び出すと、 は、Web APIがクッキー内に格納されている資格情報からのCSRF攻撃に対して脆弱ではないことが保証されています( Web APIの攻撃の防止を参照してください)。

したがって、WebApiConfigでこれを見つける //ベアラトークン認証のみを使用するようにWeb APIを設定します。 //config.SuppressDefaultHostAuthentication();

私にとって問題を生みます。言い換えれば、WebApiでクッキー認証を安全に使用することはできません。

関連する問題