2010-05-09 28 views
8

Chúng tôi đang cố gắng xây dựng một tên miền đơn ký hiệu trên giải pháp sử dụng ASP.NET MVC.Single-Sign-On ASP.NET MVC

Bất kỳ giải pháp hoặc hướng dẫn hiện có nào có sẵn?

+1

các máy chủ có thể nói chuyện với nhau hoặc cho rằng vấn đề để DB cùng Nếu vậy giải pháp là khá đơn giản –

+0

hey -.. Vâng www.example.com - là một trang web duy nhất có DB. DB là phổ biến trên tất cả các lần đăng nhập, do đó về cơ bản, trang web "từ xa" phải tự động xác nhận bằng www.example.com, v.v. – Mike

Trả lời

10

Nếu bạn ứng dụng web đang trên cùng máy chủcùng miền sau đó tất cả các bạn cần làm là đảm bảo rằng Validationkey và khóa mã hóa đều giống nhau trong cấu hình web (machineKey).

Trong ví dụ của bạn, bạn sẽ cần phải thêm vé xác thực để các chuỗi truy vấn, để vận chuyển nó trở lại lĩnh vực khác, ví dụ:

public void Login(string userName, string password) 
{ 
    if(AuthenticateUser(userName,password)) 
    { 
     Response.Redirect(String.format("{0}?{1}={2}"), 
      Request.QueryString["ReturnUrl"], 
      FormsAuthentication.FormsCookieName, 
      FormsAuthentication.GetAuthCookie(userName, false).Value)); 
    } 
} 

Trên ứng dụng địa phương mà bạn phải kích hoạt cookie hình thức xác thực và cho phép người dùng được xác thực đến từ các ứng dụng bên ngoài bằng cách đặt enableCrossAppRedirect.

<authentication mode="Forms"> 
    <forms enableCrossAppRedirect="true" cookieless="useUri" /> 
</authentication> 

Ghi chú:

  1. Xem thêm FormsAuthentication.RedirectFromLoginPage - http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx.

  2. Trong trường hợp của tôi ReturnUrl mất một phần lĩnh vực url :(