0

J'utilise asp.net boilerplate pour mon site web. Là j'ai l'authentification standard de aspnetboilerplate/module-zéro (OWIN).ASP.NET Boilerplate Auth de Windows Phone 8.1 - jeton support

Mais maintenant, je dois athentication pour mon windows application de téléphone (wp8.1) Je tentais configurer mon demande d'autorisation au porteur mais je .. Comment échoué configurent asp.net application pour mon windows boilerplate app téléphone auth?

Dans Windows phone app-je envoyer mon courrier à api web comme ceci:

public static async Task<TokenResponseModel> GetBearerToken(string siteUrl, string Username, string Password) 
     { 
      HttpClient client = new HttpClient(); 
      client.BaseAddress = new Uri(siteUrl); 
      client.DefaultRequestHeaders.Accept.Clear(); 

      HttpContent requestContent = new StringContent("grant_type=password&username=" + Username + "&password=" + Password, Encoding.UTF8, "application/x-www-form-urlencoded"); 

      HttpResponseMessage responseMessage = await client.PostAsync("Token", requestContent); 

      if (responseMessage.IsSuccessStatusCode) 
      { 
       string jsonMessage; 
       using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync()) 
       { 
        jsonMessage = new StreamReader(responseStream).ReadToEnd(); 
       } 

       TokenResponseModel tokenResponse = (TokenResponseModel)JsonConvert.DeserializeObject(jsonMessage, typeof(TokenResponseModel)); 

       return tokenResponse; 
      } 
      else 
      { 
       return null; 
      } 
     } 

Mais que dois-je faire WebAPI? Comment auth et la prochaine réponse support et comment auth à l'étape suivante en utilisant le porteur quand sur la classe j'ai [AbpAuthorize]?

+0

peut être cela vous aidera [ASP Identité .NET et clients mobiles] : http://stackoverflow.com/questions/22126305/asp-net-identity-and-mobile-clients –

Répondre

0

Ce maintenant documenté et mis en œuvre dans le module zéro modèle

code: Dans le module WebAPI:

Configuration.Modules.AbpWebApi().HttpConfiguration.Filters.Add(new HostAuthenticationFilter("Bearer")); 

Dans contrôleur WebAPI:

[HttpPost] 
    public async Task<AjaxResponse> Authenticate(LoginModel loginModel) 
    { 
     CheckModelState(); 

     var loginResult = await GetLoginResultAsync(
      loginModel.UsernameOrEmailAddress, 
      loginModel.Password, 
      loginModel.TenancyName 
      ); 

     var ticket = new AuthenticationTicket(loginResult.Identity, new AuthenticationProperties()); 

     var currentUtc = new SystemClock().UtcNow; 
     ticket.Properties.IssuedUtc = currentUtc; 
     ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(30)); 

     return new AjaxResponse(OAuthBearerOptions.AccessTokenFormat.Protect(ticket)); 
    } 
documentation

: http://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template#token-based-authentication