Chúng tôi có nhà cung cấp xác thực cookie tùy chỉnh đặt đặt cookie auth để mang tên máy chủ như .domain.com
thay vì domain.com
hoặc my.domain.com
. Chúng tôi làm điều đó để cookie hoạt động trên tất cả các tên miền phụ và các miền. Nó đơn giản như hình dưới đây.Tùy chỉnh OWIN CookieAuthenticationProvider thất bại trên 1/lạnh khởi động
Issue
Trên nỗ lực rất FIRST sau khi ứng dụng lạnh bắt đầu, cookie VẪN mang miền my.domain.com
(thông tin đăng nhập của chúng tôi là trên my.domain.com
) mặc dù cài đặt nó vào .domain.com
sau khi thực hiện mã SubdomainCookieAuthentication
bên dưới (kiểm tra với điểm ngắt). Trong lần đăng nhập tiếp theo, tên máy chủ lưu trữ cookie là tốt.
Câu hỏi
Làm thế nào tôi có thể sửa lỗi này để nó hoạt động ngay cả trên các nỗ lực đầu tiên?
Mã
Tuỳ chỉnh cookie auth
public class SubdomainCookieAuthentication : CookieAuthenticationProvider
{
public override void ResponseSignIn(CookieResponseSignInContext context)
{
// We need to add a "." in front of the domain name to
// allow the cookie to be used on all sub-domains too
var hostname = context.Request.Uri.Host;
// works for www.google.com => google.com
// will FAIL for www.google.co.uk (gives co.uk) but doesn't apply to us
var dotTrimmedHostname = Regex.Replace(hostname, @"^.*(\.\S+\.\S+)", "$1");
context.Options.CookieDomain = dotTrimmedHostname;
base.ResponseSignIn(context);
}
}
này được khởi tạo bên trong lớp khởi động Owin như sau
Class: Startup
File: App_start\Startup.Auth.cs
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new SubdomainCookieAuthentication()
});
}
có bao giờ bạn cố định này? – dampee
Dường như lỗi, thời gian báo cáo vấn đề về github –