Articles of asp.net web api

como usar async / aguardar dentro de um lambda

Como posso usar as palavras-chave async / await corretamente em uma expressão lambda? aqui está o código: public async Task GetUsers() { var query = await _db.Users.ToListAsync(); var users = query.Select(async u => new { FirstName = u.FirstName, LastName = u.LastName, IsGeek = await _userManager.IsInRoleAsync(u.Id, “Geek”) }); return Ok(users); } Como você pode ver este […]

Autorização de emissão de tokens WebAPI

Atualmente, estou usando sessões e substituindo o AuthorizeAttribute para gerenciar autorização para um ponto de extremidade WebAPI, que é usado por um aplicativo da Web do MVC. Foi-me dito que a emissão de tokens é a melhor maneira de gerenciar usuários e funções. O que estou tentando entender é: Por que é melhor do que […]

Desambiguação de rota no núcleo do ASP.NET (MVC 6)

Quando o ASP.NET Core encontra rotas nomeadas ambiguamente, torna-se inerte. Ou seja, o aplicativo será executado sem exceções, mas não processará solicitações em nenhum controlador. O cliente chamador recebe 500 respostas. Mostrarei como me meti nessa confusão e gostaria de sugestões de como corrigi-lo. Eu tenho um controlador que se parece com isso: [Route(“api/Subscribers/{id}/[controller]”)] [Route(“api/Organizations/{id}/[controller]”)] […]

Como receber uma matriz de bytes e json em um controlador de API da Web

Eu preciso receber um object json juntamente com uma matriz de bytes no aplicativo de API Web ac #. É assim que estou enviando os dados: public bool SendMedia(string method, Media media) { string filePath = Path.GetFullPath(Path.Combine(filesDirectory, media.FileName)); if (!File.Exists(filePath)) { return false; } using (var client = new HttpClient()) using (var content = new […]

Publicando uma coleção de subclasss

Eu tenho um requisito para que os usuários editem uma lista de cotações para um lead, as cotações podem ser de diferentes tipos, como: QuoteForProductTypeA QuoteForProductTypeB Todos os tipos de cotação compartilham uma class base comum, como QuoteBase. Eu tenho minhas cotações exibidas bem no front-end, e parecem postar de volta os dados corretos também. […]

segurança baseada em papéis em breezejs e EF6

Estou usando o Breeze.js, o AngularJS, o Web API e o EF6 em um projeto que possui 3 funções de segurança principais. Vamos dizer alto nível, nível médio e baixo nível. Nestes exemplos, tenho entidades Person, Company, LowLevelSecret, MediumLevelSecret, HighLevelSecret. Problema de segurança 1: No primeiro exemplo, desejo poder proteger o access às entidades como […]

Como posso lidar com segurança solicitações inválidas de dados do repository?

Com este código: public String Get(int id) { return platypi.Find(p => p.Id == id).Name; } … posso obter dados existentes via: http://localhost:33181/api/DPlatypus/N (onde N corresponde a um ID existente). Se eu usar um valor inexistente, ele explodirá. Então, eu tentei isso: public String Get(int id) { if (!string.IsNullOrEmpty(platypi.Find(p => p.Id == id).Name)) { return platypi.Find(p […]

É IDbCommandInterceptor no segmento EntityFramework 6 seguro

Uma instância IDbCommandInterceptor é considerada thread-safe quando registrada com o método add DbInterception? Implementei uma class que está em conformidade com a interface IDbCommandInterceptor e estou rastreando a hora de início de um comando quando um dos methods em execução é chamado em comparação com o horário de término quando o método executado correspondente é […]

Acompanhamento do lado do servidor do Gerenciador de tags do Google .NET

Precisamos empurrar datalayer, triggersr events e assim por diante do aplicativo .Net (C #) do lado do servidor. O Gerenciador de tags do Google possui SDKs JavaScript, Android e iOS. Também possui a API REST, mas essa API permite apenas gerenciar contêineres, tags e events, mas não permite rastreá-los. Então, é possível implementar o acompanhamento […]

WebApi DTO diferente para obter e postar

Está certo ter DTOs diferentes para ações GET e POST? A razão para isso é que geralmente há uma grande diferença entre esses dois modelos de dados. Por exemplo: Meu POST ficaria assim: /// /// Add new user /// /// User data /// Newly added user id [HttpPost] public IHttpActionResult Post([FromBody] UserDto item) { if […]