2015-01-06 31 views
10

Tôi đang phát triển một ứng dụng lớn, bao gồm cả ASP.NET MVC và AngularJS + Web Api2 trên back-end. Trước đây tôi đã sử dụng ủy quyền biểu mẫu MVC trong các ứng dụng của mình. Có rất nhiều ví dụ về cách sử dụng ủy quyền dựa trên mã thông báo với AngularJS + Web Api, nhưng không thể tìm thấy giải pháp hoàn chỉnh phù hợp với cả hai trường hợp.ASP.NET MVC + Web API2 + Ủy quyền và xác thực AngularJS

Vui lòng cung cấp cho tôi một số thông tin, nơi tôi có thể đọc về chủ đề này, có thể từng bước ví dụ, hướng dẫn hoặc blog, nơi ủy quyền hỗn hợp cho cả hai được mô tả.

Trả lời

10
  1. Triển khai ASP.Net Identity 2 trong ứng dụng WebAPI2 here is a good tutorial on implementing ASP.Identity 2. Sẽ tốt hơn nếu bạn giữ ứng dụng WebAPI và MVC5 trong các dự án khác nhau.

  2. Quyết định xem bạn muốn kết nối với các API trực tiếp từ ứng dụng AngularJS của bạn hoặc từ ứng dụng MVC của bạn

  3. Nếu gọi methodes API trực tiếp từ ứng dụng AngularJS của bạn, sử dụng this directive for OAuth2. Lưu trữ access_token trong localstorage hoặc cookie.

  4. Nếu gọi phương thức API từ bên trong ứng dụng MVC, hãy lưu access_token ở phía máy khách (sử dụng localstorage hoặc cookie) và sử dụng nó cho mỗi cuộc gọi đến API của bạn. here is a tutorial showing how to use AngularJS with ASP.Net MVC5

  5. Đảm bảo bạn đang sử dụng kết nối an toàn (https) trong quá trình sản xuất.

Cập nhật

Bạn có thể sử dụng mặc định các nhà cung cấp ASP.Net cho WebAPI. Nhưng các nhà cung cấp mặc định làm việc tốt nhất với EnityFramework.
Tôi không phải là fan của EF nên tôi đã tự mình sử dụng các nhà cung cấp dịch vụ tùy chỉnh. Here is an overview nhà cung cấp tiện ích tùy chỉnh. This MySQL example đã giúp tôi rất nhiều trong việc triển khai nhà cung cấp tùy chỉnh (tuy nhiên tôi vẫn sử dụng SQL Server nhưng với DAL nội bộ của riêng mình).

+0

Cảm ơn bạn. Có lẽ bạn có một số lời khuyên về việc thực hiện vai trò tùy chỉnh, nguyên tắc và các nhà cung cấp nhận dạng trên phía máy chủ? Hoặc nó tốt hơn để sử dụng mặc định ASP.Net Identity 2 nhà cung cấp? – saniokazzz

+0

Vui lòng xem câu trả lời cập nhật của tôi – su8898

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