2016-04-15 10 views
0

私はmvc5アプリケーションにカスタムログインを実装しています。一度私はユーザーからの資格情報を取得し、ポストを作成し、ユーザーを検証するためにトークンを取得しています。 Owin Tokenは別のクラスライブラリプロジェクトで実装しています。クラスライブラリからmvc5アプリケーションへのトークンベースの認証

[HttpPost] 
     [AllowAnonymous] 
     public ActionResult Login(UserLoginViewModel model) 
     { 
      string baseAddress = "http://localhost:4312"; 
      Token token = new Token(); 
      using (var client = new HttpClient()) 
      { 
       var form = new Dictionary<string, string> 
       { 
        {"grant_type", "password"}, 
        {"username", "jignesh"}, 
        {"password", "user123456"}, 
       }; 
       var tokenResponse = client.PostAsync(baseAddress + "/otoken", new FormUrlEncodedContent(form)).Result; 
       //var token = tokenResponse.Content.ReadAsStringAsync().Result; 
       token = tokenResponse.Content.ReadAsAsync<Token>(new[] { new JsonMediaTypeFormatter() }).Result; 
       ........ 
      } 
    } 

私はコール/ MVCアプリケーションからクラスライブラリプロジェクト内のトークンの実装をトリガするようにする方法を確認していません。クラスライブラリプロジェクトは実行可能なプロジェクトではないためです。別のクラスlibにトークンベースの実装を実装し、その実装を別のアプリケーション(mvcとwebapi)で利用する方法です。

私の層

UI(MVC) - >認証プロジェクト(Owinクラスlibarary) - >エンティティフレームワーク

任意のアイデア?

答えて

1

はい、可能ですが、何らかのAPIを使用してアプリケーションのログイン情報を公開する必要があります。

たとえば、APIとMVCプロジェクト(外部プロバイダ - GoogleやFacebookなど)の両方の認証を担当するトークンサーバーを作成できます。

これは、2つのアプリケーション(MVCとAPI)の間で同じトークンを共有するための最良の方法です。

thisの記事を確認してください。

+0

クラスlibararyでトークンを呼び出す方法。クラスライブラリが呼び出されないためです。私たちはただのWebプロジェクトしかできません。クラスライブラリでトークン実装を呼び出す方法 – SivaRajini

+0

クラスライブラリをAPIで公開する必要があります。それは確かだ。あなたができることは、MVCとAPIの間でクラスライブラリを共有し、両方のトークンエンドポイントを公開することです。 OR、より良い、第3のAPIを作成し、それをリソースサーバーとして使用し、そのAPIを使用してMVCとAPIの両方を認証します。リンクを確認してください! –

+0

シングルサンプルでDb認証とアクティブディレクトリ認証を組み合わせて使用​​できますか? – SivaRajini

0

トークンベースの認証では、トークンを発行するためにmvcアプリケーションまたはwebapiを設定する必要があります。クラスライブラリはトークンを発行できません。主な理由は、トークンを取得するように設定されたURLを呼び出す必要があるということです。 http://localhost:8080/api/gettoken。 トークンを発行するためにwebapiを使用してトークンまたはmvcアプリを発行してください。

+0

:)それがお役に立てば幸いですが、私は、あなたが移動した場合でも?トークンを発行するためにMVCとWEBAPIの両方を使用する必要がないのはなぜMVCとWEBAPIの両方のアプリケーション – SivaRajini

+0

を使用するINORDER seprateプロジェクトにauthentcationロジックを移動したいですdllを分離するあなたのロジックは、どちらか一方だけでトークンを発行することができます。両方の認証が必要な場合は、mvcのフォーム認証とwebapiのトークンを使用します。ですから、あなたがログインしたら、ユーザーがmvcで認証された後、webapiにトークンを要求してください。 –

関連する問題