cookie認証を使用して、MVCサイトからWebApiにajaxリクエストを作成します。 BUT 問題が発生しました。クロスドメインクッキー認証のトラブルWebApi ASP.NET
ControllerContext.RequestContext.Principal
ヌルです。要求に応じて存在しない限り、Cookieを認識できないようです。 私は2つのアプリケーションを持っています 1 - MVCメイン 2 - WebApi additional MVCはWebApiを要求します。どちらも共通のアイデンティティユーザーを使用します。ここで
は私の実装IAppBuilderpublic static void Register(IAppBuilder app)
{
app.CreatePerOwinContext(MyDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName = ".AspNet.Cookies",
CookieSecure = CookieSecureOption.Never,
AuthenticationMode = AuthenticationMode.Active
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
}
マイApplicationManagerのため
登録されている:
WEBAPIとMVCでpublic class ApplicationUserManager : UserManager<ApplicationUser> { public ApplicationUserManager(IUserStore<ApplicationUser> store) : base(store) { } public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) { var appDbContext = context.Get<MyDbContext>(); var appUserManager = new ApplicationUserManager(new UserStore<ApplicationUser>(appDbContext)); return appUserManager; } }
同じいるMachineKeys
<のmachineKey解読= "AES" decryptionKey = "F7F ..." 検証= "SHA1" validationKey = "DD2 ..."/>
承認で覆われ、コントローラが
[Authorize] [EnableCors(origins: "*", headers: "*", methods: "*", SupportsCredentials = true)] public sealed class BalanceController : ApiController ...
属性
助けてください。