2016-10-27 4 views
0

トウasp.net mvc projects.oneはmvc apiであり、もう一つはmvc webです。 auth2にowinを使用しているmvc api。 mvc webはjsではなくapiにアクセスします。 問題は、Web(バックアップ)がapiにアクセスするときに応答がないことですが、私がデスクトップのWinフォームクライアントを使用すると、問題なく動作します。 私はなぜ、それを修正する方法を知りたいです。どのようにmvcのWebプロジェクトバックエンドの別のmvcのAPIプロジェクトへのアクセス

いくつかのコード、およびパッケージ、クライアント側owin vs2015

private HttpClient _client; 
.... 
    private async Task<TokenParam> GetAccessToken(string user,string psw) 
    { 
     var parameters = new Dictionary<string,string>(); 
     parameters.Add("grant_type","password"); 
     parameters.Add("username",user); 
     parameters.Add("password",psw); 

     _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(Id + ":" + Secret))); 

     var response = await _client.PostAsync("/token",new FormUrlEncodedContent(parameters)); 
     var value = await response.Content.ReadAsStringAsync();-----> here no response back from api server 

     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      var o = value.FromJson<TokenParam>(); 
      o.LoginTime = DateTime.Now.AddSeconds(-10); 
      return o; 
     } 
     return null; 
    } 

owinサーバ側

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) 
    { 
     var oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType); 
     oAuthIdentity.AddClaim(new Claim(ClaimTypes.Name,context.UserName)); 
     var ticket = new AuthenticationTicket(oAuthIdentity,new AuthenticationProperties()); 
     context.Validated(ticket); 
     await base.GrantResourceOwnerCredentials(context); 
    } 

私packages.configファイル

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Antlr" version="3.4.1.9004" targetFramework="net452" /> 
    <package id="bootstrap" version="3.0.0" targetFramework="net452" /> 
    <package id="EntityFramework" version="6.1.3" targetFramework="net452" /> 
    <package id="jQuery" version="1.10.2" targetFramework="net452" /> 
    <package id="jQuery.Validation" version="1.11.1" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" /> 
    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" /> 
    <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net452" /> 
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" /> 
    <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.Facebook" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.MicrosoftAccount" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.Twitter" version="3.0.1" targetFramework="net452" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" /> 
    <package id="Modernizr" version="2.6.2" targetFramework="net452" /> 
    <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" /> 
    <package id="Owin" version="1.0" targetFramework="net452" /> 
    <package id="Respond" version="1.2.0" targetFramework="net452" /> 
    <package id="WebGrease" version="1.5.2" targetFramework="net452" /> 
</packages> 
+0

/トークンエンドポイントにアクセスするときに基本認証を使用するのはなぜですか?エンドポイントからのステータスコードと応答は何ですか? –

答えて

0

誤りがあります、私が別の2つのプロジェクトを作成すると、すべてうまく動作します。

関連する問題