2013-07-16 16 views
19

owin.org'a dayanan VS 2013'te tanıtılan yeni kimlik doğrulama sistemi için LDAP desteğinin nasıl uygulanacağını biliyor muyuz?LDAP VS2013'deki yeni Kimlik Doğrulama Sistemi Desteği (owin (owin.org) temel alınarak)

Kendi sağlayıcımı Formlar kimlik doğrulaması kullanarak yazdım ancak artık çalışmıyor.

Bunu genişletmenin herhangi bir yolu da çok hoş karşılanacaktır. Tek gördüğüm, Google, Twitter ve Facebook gibi birçok oauth sağlayıcısı için destek oluşturdu.

+0

Bunu kontrol ettiniz mi: 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

cevap

1

Aslında oldukça kolaydır. Sadece CheckPasswordAsync method in the provided UserManager'u geçersiz kılmanız gerekir. (Tam açıklama, bu benim blog gönderim).

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) 
     }); 
    } 
} 

Bu çok naif bir yöntemdir, ancak çalışması gerekir.

+0

'Task.Run 'işlevini kullanmak ASP.NET'teki performansı engeller. Bunun yerine tamamlanmış bir 'Görev 'i döndürmek için' Task.FromResult' kullanın. –

+0

@PauloMorgado Tak.Run vs Task.FromResult performans hakkında daha fazla bilgi için bir bağlantı var mı? –

+0

[Curation] 'da birkaç tane var (http://curah.microsoft.com/45553/asyncawait-general). [PFX Ekibinin blogu] (http://blogs.msdn.com/b/pfxteam/) ve [Stephen Clearly'nin blogu] (http://blog.stephencleary.com/) sitesinde daha fazlasını bulabilirsiniz. Neden bir ASP.NET uygulamasında Task.Run işlevini çağırmanın iyi olduğunu düşünüyorsunuz? –