2015-12-30 29 views
6

Tôi đang phát triển một ứng dụng mạng nội bộ và muốn sử dụng các tổ chức hiện có Active Directory để xác thực người dùng và ủy quyền vai trò dựa trên chính sách.Cách sử dụng Active Directory cho ASP.Net 5 (MVC6) Intranet application

Ai đó có thể chỉ cho tôi đúng hướng không? Tôi nhận được một chút bối rối (cũng thực sự rất nhiều nhầm lẫn).

Thankyou

Trả lời

3

mỗi Authentication và Autorization nguồn dưới http://docs.asp.net/en/latest/security/index.html

Đầu tiên bắt đầu một dự án ứng dụng Web ASP.Net mới, Chọn mẫu Web Application sau đó trên báo chí cửa sổ bên phải nút "Change xác thực" và chọn "Xác thực Windows".

Bây giờ bạn có thể sử dụng [Authorize] trên một lớp hoặc phương pháp để kiểm tra xác thực cơ bản vs thư mục hoạt động như của RC2 bạn chỉ có thể sử dụng các tên nhóm ala [Authorize([email protected]"DOMAIN\GROUP")]

Giải pháp thay thế hiện nay đã lỗi thời và cồng kềnh (vẫn hoạt động):

Nếu bạn nhìn vào User.Claims bạn có thể thấy các khóa nhóm tồn tại cho từng nhóm của người dùng. Xây dựng tắt mà bạn có thể làm điều gì đó như [Authorize(Policy="FOOBAR")] và định nghĩa nó trong phương pháp Startup.ConfigureServices của bạn thông qua

 services.AddAuthorization(
      o => o.AddPolicy(
       "FOOBAR", 
       p => p.RequireClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", 
        "ENTER GROUP SID") 
       )); 

Lưu ý rằng param thứ hai để RequireClaim là một mảng chuỗi để cho phép nhiều nhóm.

Cũng lưu ý để tìm ra id nhóm thông qua dòng lệnh này kỳ diệu dsquery group -name “ENTER GROUP NAME” | dsget group -sid

+0

Nếu người dùng là không được phép, làm thế nào bạn sẽ chuyển hướng đến không được uỷ quyền View() ?? –

+0

@HariGillala theo mặc định nó chỉ đơn giản là ném một http 500, xử lý giống như bất kỳ trang lỗi tùy chỉnh nào khác. Đăng câu hỏi thực tế để biết chi tiết cụ thể. – Rick

+1

'[Ủy quyền (Vai trò = @" DOMAIN \ GROUP ")]' dường như hoạt động ngay bây giờ với RC2. – Jani

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