2013-07-16 29 views
19

Chúng tôi biết cách triển khai hỗ trợ LDAP cho hệ thống xác thực mới được giới thiệu trong VS 2013 dựa trên owin.org.Hỗ trợ LDAP cho Hệ thống xác thực mới trong VS2013 (dựa trên owin (owin.org))

Tôi đã viết nhà cung cấp của riêng mình bằng xác thực Mẫu nhưng không hoạt động nữa.

Bất kỳ cách nào để mở rộng điều này cũng sẽ rất được hoan nghênh. Tất cả những gì tôi thấy được xây dựng để hỗ trợ cho rất nhiều nhà cung cấp oauth như Google, Twitter và Facebook.

+0

Bạn đã kiểm tra điều này: http://blogs.msdn.com/b/webdev/archive/2014/02/21/using-claims-in-your-web-app-is-easier-with-the -new-owin-security-components.aspx – Saravanan

Trả lời

1

Nó thực sự khá dễ dàng. Bạn chỉ cần ghi đè số CheckPasswordAsync method in the provided UserManager. (Tiết lộ đầy đủ, đó là bài đăng trên blog của tôi).

public class ApplicationUserManager : UserManager<ApplicationUser> { 
//...SNIP... 
    public override async Task<bool> CheckPasswordAsync(ApplicationUser user, string password) 
    { 
     return await Task.Run(() => { 
      _context = new PrincipalContext(ContextType.Domain); 
      return _context.ValidateCredentials(user.UserName, password, ContextOptions.Negotiate) 
     }); 
    } 
} 

Đó là một phương pháp rất ngây thơ, nhưng nó sẽ hoạt động.

+0

Sử dụng 'Task.Run' sẽ làm tổn thương hiệu suất trên ASP.NET. Sử dụng 'Task.FromResult' để trả về một' Task' đã hoàn thành. –

+0

@PauloMorgado Bạn có liên kết để biết thêm thông tin về hiệu suất của Tak.Run so với Task.FromResult không? –

+0

Tôi có một số trong [curation] của tôi (http://curah.microsoft.com/45553/asyncawait-general). Bạn có thể tìm thấy nhiều hơn nữa trên [blog của Nhóm PFX] (http://blogs.msdn.com/b/pfxteam/) và [blog của Stephen Clearly] (http://blog.stephencleary.com/). Tại sao bạn nghĩ rằng gọi 'Task.Run' trên một ứng dụng ASP.NET là bất kỳ tốt? –

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