2013-07-02 31 views
6

Tôi có một cá thể SignalR tự lưu trữ, sử dụng OWIN. Tôi muốn thực hiện ủy quyền. Người dùng của tôi đã đăng nhập vào một ứng dụng ASP.NET MVC, sử dụng Forms Authentication.Chấp nhận cookie Xác thực Biểu mẫu ASP.NET trong triển khai SignalR do OWIN lưu trữ?

Vì hai ứng dụng sẽ có sẵn tại cùng một URL, các cookie sẽ được chia sẻ giữa hai ứng dụng. Làm cách nào để chấp nhận cookie Xác thực biểu mẫu trong ứng dụng SignalR tự lưu trữ?

Làm rõ: Tôi đang nói về một trình duyệt truy cập hub Hub tự lưu trữ bằng các thông tin tương tự đã được sử dụng để đăng nhập vào một ứng dụng IIS riêng biệt (nhưng có liên quan và được cài đặt trên cùng một máy chủ).

Vì vậy, câu hỏi là: làm cách nào để móc vào đường dẫn máy chủ SignalR để nắm bắt cookie .ASPXAUTH và sử dụng nó để đặt hiệu trưởng hiện tại trước khi gọi cho trung tâm?

Nếu có ích, tôi có thể ném một số Nancy vào hỗn hợp.

+0

Bạn đã bao giờ tìm thấy giải pháp cho vấn đề của mình chưa. Tôi đang cố gắng như vậy (mặc dù ứng dụng MVC của tôi và dịch vụ SignalR tự lưu trữ của tôi là trên các cổng khác nhau). –

Trả lời

0

Nếu người dùng của bạn đã được xác thực và đăng nhập, bạn có thể kiểm tra như sau trong trung tâm SignalR của bạn:

Context.User.Identity.IsAuthenticated 

Đảm bảo tài sản này được thiết lập là true. Bạn có thể đặt kiểm tra này bên trong nhà xây dựng của trung tâm của bạn để chặn/xóa kết nối của họ. Nếu sai, bạn có thể chuyển hướng chúng đến một trang khác.

+0

Xác thực xảy ra trong ứng dụng MVC, không phải trong dịch vụ. Cookie .ASPXAUTH có thể được tiêu thụ trong cả hai, nhưng làm cách nào để móc nó vào đường dẫn SignalR hoặc OWIN? –

+1

Roger, tôi thấy những gì bạn đang tìm kiếm nhưng thực sự không bao giờ cố gắng làm điều đó. Đối với lớp kết nối, có một thuộc tính được gọi là "CookieContainer". Điều này được tìm thấy trong [Microsoft.AspNet.SignalR.Client.Connection] (http://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.client.connection.cookiecontainer (v = vs.111) .aspx) nơi bạn có thể nhận/đặt nó. Trong đó, bạn có thể sử dụng mã từ [answer] này (http://stackoverflow.com/questions/13022415/signalr-net-client-fails-to-connect-upd-how-to-set-auth-cookie) để thử và thêm nó. – SeanPrice

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