我在两个独立的ASP.NET Core项目中使用WsFederation。
每个项目在Startup.cs
中都有以下内容:
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
})
.AddWsFederation(options =>
{
options.Wtrealm = Configuration["Wtrealm"];
options.MetadataAddress = "http://example.com/metadata.xml";
options.SkipUnrecognizedRequests = true;
options.RequireHttpsMetadata = false;
options.UseTokenLifetime = false;
})
.AddCookie(options =>
{
options.Cookie.Name = "MySharedCookie";
options.Cookie.Path = "/";
options.Cookie.Domain = ".dev.example.com";
});
我在浏览器中加载项目 #1,然后获取我的 cookie: 我然后导航到同一子域下的项目2。但是,项目2不认识MySharedCookie并且重新验证身份。我得到了一个具有相同名称但不同值的新cookie: 在ASP.NET Core中,我想做的事情是否可行?在ASP.NET Core中,我是否可以将项目#1的cookie与项目#2共享?