6

Tôi đang cố gắng thiết lập Đăng nhập một lần cho 2 trang web nằm trên cùng một tên miềnĐăng nhập một lần bằng Xác thực Mẫu

ví dụ:

http://mydomain (trang web cấp cao nhất có chứa một trang đăng nhập forms-auth)

http://mydomain/admin (website riêng rẽ phát triển cư trú tại một ứng dụng ảo trong trang web mẹ)

đã đọc một vài bài viết về Single Sign trên ví dụ

http://www.codeproject.com/KB/aspnet/SingleSignon.aspx

http://msdn.microsoft.com/en-us/library/dd577079.aspx

Và họ dường như cho thấy nó chỉ là một trường hợp có phần machinekey giống nhau trong mỗi web.config để mã hóa cookie và giải mã là như nhau cho mỗi ứng dụng

Tôi đã thiết lập điều này và tôi không bao giờ được nhắc về thông tin đăng nhập trong trang web phụ (ứng dụng ảo)

Tôi luôn được nhắc trong trang web chính.

Ngoài việc có các machinekey cùng tôi cũng đã cố gắng thêm cùng <authentication><authorisation> yếu tố

Bất kỳ ý tưởng những gì tôi có thể bị mất?

+0

Bất kỳ thành công nào với câu hỏi này? – AlfeG

Trả lời

1

tôi đã sử dụng <clear/> trên phần httpModules, như có những mặt hàng trong các phụ huynh chưa từng tồn tại trong thư mục bin cho đứa trẻ (/ admin)

Trong khi làm điều đó (sử dụng <clear/> đó là) tôi đã vô tình xóa mô-đun FormsAuthentication được chỉ định trong web.config trong C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG

vì vậy tôi cần phải thêm lại rõ ràng cấu hình con (/ quản trị)

+0

Tôi đang cố gắng làm điều tương tự. Chúng tôi có thể có Biểu mẫu xác thực và SSO cho cùng một trang web không? Có lẽ có hai trang bắt đầu khác nhau, nhưng duy nhất web.config? Bất kỳ ý kiến, đề nghị? – VoodooChild

0

Thử định cấu hình phần httpCookies trong web.config của cả hai ứng dụng để sử dụng cùng một tên miền. Bằng cách đó, khi bạn đăng nhập vào một ứng dụng, cookie FormsAuthentication bạn nhận được sẽ hiển thị với ứng dụng khác.

+0

cảm ơn đề xuất - rất tiếc là không có bất kỳ sự khác biệt nào – ChrisCa

1

Phần biểu mẫu của web.config cũng cần phải giống nhau.

Quote from - Forms Authentication Across Applications

Để cấu hình thẩm định hình thức trên các ứng dụng, bạn thiết lập các thuộc tính của các hình thức và phần machineKey của file Web.config với các giá trị tương tự cho tất cả các ứng dụng đang tham gia thẩm định các hình thức chia sẻ.

Ví dụ sau cho thấy phần Xác thực của tệp Web.config . Trừ khi có ghi chú khác, các thuộc tính mã hóa, bảo vệ, đường dẫn, xác thực , decryptionKey và giải mã phải là giống nhau trên tất cả các ứng dụng. Tương tự, mã hóa và giá trị khóa xác thực và lược đồ mã hóa và xác thực lược đồ được sử dụng cho vé xác thực (dữ liệu cookie) phải giống nhau. Nếu cài đặt không khớp, việc xác thực không thể chia sẻ vé.

+0

cảm ơn - như tôi đã nói trước đó, tôi đã thử với cùng một phần xác thực và ủy quyền Điều giao nhau mà tôi đã nhận thấy là khi tôi sử dụng đường dẫn đầy đủ cho loginURL ví dụ "http: //mydomain/login.aspx" Tôi được nhắc về Windows Credentials (không phải trang đăng nhập biểu mẫu mà tôi mong đợi) – ChrisCa

+0

Chỉ muốn chắc chắn rằng tôi có được quyền này. Nếu bạn đăng nhập vào Mydomain, bạn sẽ được xác thực cho Mydomain/admin và điều này hoạt động tốt. Và bạn cũng muốn nó hoạt động theo cách khác? tức là khi bạn đăng nhập vào quản trị viên của bạn đã được xác thực cho Mydomain? Bạn đã xem mã xác thực của mình trong MyDomain chưa? Có bằng cách nào đó khác với/admin không? –

+0

Không. Khi tôi truy cập mydomain, trang này chứa trang đăng nhập, tôi muốn được xác thực cho mydomain và cũng là mydomain/admin. Khi tôi truy cập http: // mydomain, tôi được chuyển hướng đến trang đăng nhập - đó là điều tôi muốn xảy ra. Khi tôi truy cập http: // mydomain/admin, tôi không được chuyển hướng - tôi có toàn quyền truy cập vào trang web/quản trị viên. tức là nó không chọn xác thực từ phụ huynh – ChrisCa

0

Bạn cần phải có cùng các yếu tố xác thực trong web.config. Trong phần tử biểu mẫu có chứa, hãy đảm bảo bạn cung cấp cho mỗi ứng dụng cùng một giá trị cho thuộc tính name. Đối với thuộc tính loginUrl, tôi sử dụng đường dẫn tương đối và sử dụng cùng một trang đăng nhập cho tất cả các ứng dụng (ví dụ:loginUrl = "/ MainApp/login.aspx").

Ngoài ra, bạn có đang tạo vé xác thực theo cách thủ công không?

+0

có, đã thử với một đường dẫn cục bộ (login.aspx) trong phụ huynh và đường dẫn đầy đủ (mydomain/login.aspx) trong/admin, nhưng tôi chưa bao giờ được chuyển hướng đến trang đăng nhập trên/admin. Nếu tôi đặt một đường dẫn đầy đủ trong cả hai sau đó tôi nhận được nhắc nhở với một cửa sổ đăng nhập nhanh chóng (không phải hình thức đăng nhập trang). đã thử tất cả các thiết lập bảo mật trong IIS nhưng không thể được chuyển hướng đến trang đăng nhập trên site con – ChrisCa

+0

Bạn đang cố gắng hiển thị trang đăng nhập ngay cả khi người dùng đã đăng nhập vào trang không phải quản trị viên? Ngoài ra, bạn có đang đặt phần hạn chế người dùng trong phần tử ủy quyền không? –

Các vấn đề liên quan