OWIN - 禁止在子域之间共享cookie

时间:2016-11-16 13:51:40

标签: asp.net asp.net-identity owin

我有以下OWIN身份验证设置的简单应用程序:

    public partial class Startup
    {
        public void ConfigureAuth(IAppBuilder app)
        {
            var options = new CookieAuthenticationOptions
            {                
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                CookieName = "app",
            };

            options.ExpireTimeSpan = TimeSpan.FromHours(2);
            options.LoginPath = new PathString("/account/login");
            options.Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager, IdentityUser, Guid>(
                    TimeSpan.FromSeconds(30),
                    (manager, user) => user.GenerateUserIdentityAsync(manager),
                    claim => Guid.Parse(claim.GetUserId()))
            };

            app.UseCookieAuthentication(options);
        }
    }

如果我在两个子域test.app.com和demo.app.com上托管应用程序,我需要分别登录这两个应用程序,这很好。

但是,如果我使用Fiddler捕获请求/响应,从test.app.com提取cookie并使用Fiddler访问带有相同cookie的demo.app.com,它将返回结果。

我想知道,我们如何阻止此操作,禁止使用相同的Cookie从一个子域访问另一个子域。

我有单个应用程序实例,两个子域都指向它。

谢谢!

0 个答案:

没有答案