7

Tôi đang tạo trang web loại mạng nội bộ với ASP.NET 5 sử dụng Xác thực Windows. Tôi có xác thực đang hoạt động, nhưng tôi không muốn mọi người trên miền có quyền truy cập vào trang web mạng nội bộ. Tôi không thể sử dụng vai trò tên miền vì vậy tôi đã thiết lập vai trò tùy chỉnh của riêng mình trong SQL Server của tôi. Tôi có một bảng ánh xạ tên người dùng tên miền cho các vai trò. Tôi muốn hạn chế quyền truy cập vào trang web mạng nội bộ để chỉ những người dùng có vai trò được xác định trong bảng vai trò SQL Server của tôi. Làm cách nào để thiết lập vai trò tùy chỉnh cho Xác thực Windows trong ASP.NET 5? Cảm ơn!ASP.NET 5 Vai trò tùy chỉnh cho Xác thực Windows

+0

bạn đã xem SqlRoleProvider chưa? –

+0

Tôi không tin rằng SqlRoleProvider có sẵn trong ASP.NET 5. Ít nhất tôi không thể tìm thấy bất kỳ tham chiếu đến nó. – Jeremy

Trả lời

8

Bạn không thiết lập vai trò tùy chỉnh. Bạn cần tạo thuộc tính ủy quyền tùy chỉnh, như được mô tả here.

UPDATE:

Vâng, bạn có thể sử dụng thuộc tính ủy quyền tùy chỉnh của bạn trên toàn cầu. Hãy nói rằng đây là tùy chỉnh ủy quyền Thuộc tính của bạn:

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var username = httpContext.User.Identity.Name; 

     // Check to see if user has a role in the database 
     var isAuthorized = db.User.Find(username).Any(); 

     return isAuthorized; 
    } 
} 

Sau đó, bạn có thể sử dụng nó ở cấp độ hành động hoặc mức điều khiển như thế này:

[MyAuthorize] 
public ActionResult Index() 
{ 
} 

Hoặc bạn có thể đăng ký nó như một bộ lọc toàn cầu trong lớp FilterConfig của bạn trong thư mục App_Start, như sau:

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new MyAuthorizeAttribute()); 
    } 
} 
+0

Thuộc tính ủy quyền tùy chỉnh có thể tự động chạy trên mọi yêu cầu không? Tôi nghĩ rằng đó chỉ là để thêm một thuộc tính trên bộ điều khiển cụ thể như [MyCustomAttribute] để hạn chế người dùng trên một bộ điều khiển cụ thể (s). – Jeremy

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