Nếu tất cả các trang web chia sẻ tên máy chủ chung trong URL của chúng thì bạn có thể đặt cookie xác thực (FormsAuthentication.SetAuthCookie) chỉ định đường dẫn của cookie là "/" để tất cả các trang web có thể thấy người dùng đã đăng nhập.
Nếu trang web không chia sẻ tên máy chủ chung, tôi nghĩ cách duy nhất để có được "đăng nhập một lần, đăng nhập ở mọi nơi [trong vòng các trang web] của bạn" một trang web (có lẽ một trang dành riêng để xác thực người dùng) và cho các trang web khác chuyển hướng người dùng đến trang web đó để xác thực và sau đó trang web đó sẽ chuyển hướng trở lại. Về bản chất, trang auth đó trở thành một nhà cung cấp nhận dạng, và gần như hoàn toàn chính xác vai trò của một nhà cung cấp OpenID (trong thực tế, DotNetOpenAuth có thể được sử dụng ở đây cho mục đích chính xác này). Vì có vẻ như mục tiêu của bạn là cho phép người dùng đăng nhập bằng OpenID của họ, nhà cung cấp OpenID của bạn trên một trang web xác thực đó có thể sử dụng OpenID để xác thực người dùng. Nhà cung cấp OpenID ủy nhiệm thuần túy của riêng bạn có thể được viết sao cho nó luôn đáp ứng ngay lập tức các yêu cầu kiểm tra ngay lập tức miễn là Realm trong yêu cầu xác thực là một trong những trang đáng tin cậy của bạn. Do đó, bạn có thể thực hiện đăng nhập một lần trên tất cả các trang web của mình.
Nguồn
2009-08-07 22:47:33
Tôi nghĩ rằng tôi có vấn đề tương tự. Bạn có thể mô tả cách bạn thực hiện nó? –