2013-07-16 7 views
19

owin.orgに基づいたVS 2013で導入された新しい認証システムのLDAPサポートの実装方法を知っていますか?VS2013での新しい認証システムのLDAPサポート(owin(owin.org)に基づく)

フォーム認証を使用して自分のプロバイダを作成しましたが、それ以上は動作しません。

これを拡張する方法も非常に歓迎されます。私が見ているのは、Google、Twitter、Facebookなどの多くのoauthプロバイダをサポートするために作られたものです。

+0

チェックアウトしましたか: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

答えて

1

実際はかなり簡単です。 CheckPasswordAsync method in the provided UserManagerを無効にするだけです。 (完全な開示、それは私のブログの投稿です)。

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

これは非常に立派な方法ですが、うまくいくはずです。

+0

'Task.Run'を使用すると、ASP.NETのパフォーマンスが低下します。代わりに 'Task.FromResult'を使って、完了した' Task'を返してください。 –

+0

@PauloMorgado Tak.RunとTask.FromResultのパフォーマンスに関する詳細情報へのリンクがありますか? –

+0

私は[curation](http://curah.microsoft.com/45553/asyncawait-general)にいくつかあります。 [PFXチームのブログ](http://blogs.msdn.com/b/pfxteam/)と[Stephen Clearlyのブログ](http://blog.stephencleary.com/)にもっと詳しく載っています。なぜあなたはASP.NETアプリケーション上で 'Task.Run'を呼び出すのが良いと思いますか? –