私はsignalRを使用しており、[Authorize]
属性が機能するようにしようとしています。セットアップ以下で、私は401不正な..承認ヘッダーシグナルを使用して不正アクセスする
を取得し、私はハブを開始する直前に、私はこのように認証を設定します。
:私はヘッダが以下のような要求で送信されていることがわかります$.signalR.ajaxDefaults.headers = { Authorization: 'Bearer ' + settingsService.getItem('authData').token }
許可:ベアラF0wGNa7cAwUjOFI27TDR_w7N4Ncmz66PGpsU1AH2AWt0Gdt39e2o4DGwPsBXTAlIwHrAF-YHE9I1KGLxfabE0QxpcY5mLn1gxGWStOSX_W5NaUQlRlpRu5k-s6YLH-vVjlakqap_YXbzPelZJOjwcz7Ea5VHcCUFQ5xDYYK0VJXDIqMwQXZPIyVtNVu1RyLLVj7iOZaMd-41gHKWNqFWJBmK5WkWw06dI4AWiifWJT_8v1WrFPCAzYfiT0U
マイハブ:
[Authorize]
[HubName("myHub")]
public class DataHub : Hub {
private static bool _isInitated;
public DataHub() {
//Do stuff
}
}
}
トークンは次のように作成されます。
var identity = new ClaimsIdentity(OAuthDefaults.AuthenticationType);
identity.AddClaim(new Claim("Username", "myname"));
var properties = new AuthenticationProperties() {
IssuedUtc = DateTime.UtcNow,
ExpiresUtc = DateTime.UtcNow.Add(Startup.OAuthOptions.AccessTokenExpireTimeSpan)
};
var ticket = new AuthenticationTicket(identity, properties);
var accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);
var response = new JObject(new JProperty("access_token", accessToken), new JProperty("expires_in", Startup.OAuthOptions.AccessTokenExpireTimeSpan.TotalMinutes));
return Ok(new { token = response });
私はここで特別な何かが足りないのですか?本当にそれを取得しないでください。
はありがとうござい動作しませんでした:以下のように!私はこの問題を解決しようと何時間も探しました。これはまさに私が必要としたものでした。 – rooter