WebApiを使用しているMVCプロジェクトで簡単なCookieおよびベアラトークンの承認を受けています。自分の標準MVCコントローラでBearerによるアクセスを無効にしたいベアラトークンを使用して標準MVCコントローラへのアクセス要求を無効にする方法
これが私の状況は以下のようになります。ベアラ
が
- 標準MVCコントローラはにアクセス私は持っている:
- 標準MVCコントローラはにアクセス:のみクッキー
- Web APIをコントローラはにアクセス:のみベアラ
WebApiConfig.cs
public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter("Bearer")); } }
Startup.Auth.cs
public partial class Startup { public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get; private set; } public void ConfigureAuth(IAppBuilder app) { app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); OAuthBearerOptions = new OAuthBearerAuthenticationOptions(); app.UseOAuthBearerAuthentication(OAuthBearerOptions); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); }
それは、カスタム認可属性を持つことは可能ですか?このように:[承認(「OnlyCookie」]
私は同様のソリューションを見ましたが、それはSinglePageAplicationのためだった、と私は私の.NET MVC 4アプリケーションでそれを実装する方法を知らない - 私はここでそれを見た:https://docs.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme
を私は「AuthenticationScheme = 『クッキー』」を追加しようとしたとき、compilatorは私にエラーを与える:CookieAuthenticationOptionsは、あなたが使用していないので、あなたはそのプロパティをしませんAuthenticationScheme