Articles of asp.net web api

WebApi assíncrona Thread.CurrentCulture

Eu tenho um projeto de API da Web hospedada por OWIN auto-hospedado fornecendo alguns methods REST básicos para mim. Eu quero ter mensagens de erro multilíngües, então eu uso arquivos de resources e um BaseController que define o Thread.CurrentCulture e Thread.CurrentUICulture para o header Accept-Language da solicitação. public override Task ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { […]

Acessando postar ou obter parâmetros em autorização customizada MVC4 Web Api

É possível acessar postar ou obter parâmetros por meio do object HttpActionContext? Eu tenho um conjunto de sensores que loggs dados para um servidor web que fornece uma API REST. Eu gostaria de introduzir algum tipo de autenticação / autorização, permitindo que os sensores incluam seu ID de hardware nos dados e, em seguida, faça […]

Tipo de concessão não suportado em c # ao chamar web api

Eu estou tentando executar um post para o meu WebAPI de um aplicativo de desktop AC # WPF. Não importa o que eu faça, eu fico {“error”: “unsupported_grant_type”} Isso é o que eu tentei (e já tentei de tudo que pude encontrar): Também dev API api atualmente ativa para testes: http://studiodev.biz/ object base do cliente […]

Como retornar uma string bruta com o ApiController?

Eu tenho um ApiController que serve XML / JSON, mas gostaria que uma das minhas ações retornasse HTML puro. Eu tentei o abaixo, mas ele ainda retorna XML / JSON. public string Get() { return “test”; } Isto é o que o acima retorna: <strong>test</strong> Existe uma maneira de retornar apenas o texto puro, sem […]

Por que um “await Task.Yield ()” é necessário para o Thread.CurrentPrincipal fluir corretamente?

O código abaixo foi adicionado a um projeto WebAPI do Visual Studio 2012 .NET 4.5 recém-criado. Eu estou tentando atribuir HttpContext.Current.User e Thread.CurrentPrincipal em um método asynchronous. A atribuição de Thread.CurrentPrincipal flui incorretamente, a menos que um await Task.Yield(); (ou qualquer outra coisa assíncrona) é executada (passar true para AuthenticateAsync() resultará em sucesso). Por que […]

Obter IPrincipal do token de portador OAuth em OWIN

Eu adicionei com êxito o OAuth ao meu projeto WebAPI 2 usando o OWIN. Eu recebo tokens e posso usá-los no header HTTP para acessar resources. Agora quero usar esses tokens também em outros canais para autenticação que não são as solicitações HTTP padrão para as quais o modelo OWIN é feito. Por exemplo, estou […]

Colocar conteúdo no object HttpResponseMessage?

Vários meses atrás, a Microsoft decidiu mudar a class HttpResponseMessage. Antes, você poderia simplesmente passar um tipo de dados para o construtor e, em seguida, retornar a mensagem com esses dados, mas não mais. Agora, você precisa usar a propriedade Content para definir o conteúdo da mensagem. O problema é que é do tipo HttpContent, […]

Qual é a diferença entre a API da Web do WCF e a API da Web do ASP.NET

Eu fiz um pouco de trabalho no passado usando WCF WebAPI e realmente gostei de muitos dos seus resources, eu estou apenas brincando com API da Web do asp.net no momento e parece completamente diferente (IE completamente removido do WCF). Alguém sabe quais resources do WCF WebAPI estão incluídos na API da Web do ASP.NET […]

Como retornar um arquivo usando a API da Web?

Eu estou usando o ASP.NET Web API . Eu quero baixar um PDF com c # da API (que a API gera). Posso apenas ter a API retornar um byte[] ? e para o aplicativo C # posso apenas fazer: byte[] pdf = client.DownloadData(“urlToAPI”);? e File.WriteAllBytes()?

Como extrair o valor do header personalizado no manipulador de mensagens da API da Web?

Atualmente tenho um manipulador de mensagens no meu serviço de API da Web que substitui ‘SendAsync’ da seguinte maneira: protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { //implementation } Dentro desse código, preciso inspecionar um valor de header de solicitação adicionado personalizado chamado MyCustomID . O problema é quando eu faço o seguinte: if (request.Headers.Contains(“MyCustomID”)) […]