Size: a a a

var chat = new Chat();

2020 June 25

VL

Vova Lantsov in var chat = new Chat();
Пару идей:
1) model/{id:guid}
Читать route constraint reference
2) вместо 2х атрибутов юзать 1
Не
[Route("model")]
[HttpGet]
А
[HttpGet("model")]
То же самое касается HttpPost и т.д.
3) использовать ActionResult<T> для большей строгой типизации
Не
return Ok(model);
А
return model;
Если model имеет тип T
Пример
Task<ActionResult<List<MyModel>>>
Сразу видно что возвращает метод юзеру
4) используй классы для приёма [FromQuery] параметров, тогда будет работать встроенная в asp валидация через ModelState
Старый вариант:
MyControllerMethod([FromQuery] string param1, [FromQuery] int param2)
Новый вариант:
class MyModel
{
 [FromQuery(Name = "param1")]
 [Required]
 [MinLength(2), MaxLength(20)]
 public string Parameter1 { get; set; }

 [FromQuery(Name = "param2")]
 [Range(1, int.MaxValue)]
 public int Param2 {get; set;}
}
MyControllerMethod([FromQuery] MyModel model)
источник

н

назови меня клоуном... in var chat = new Chat();
Ага, только там код отсутствует))
источник

VL

Vova Lantsov in var chat = new Chat();
источник

JS

John Stellmann in var chat = new Chat();
назови меня клоуном
Ага, только там код отсутствует))
а вот это шо?
services.AddAuthentication()
   .AddMicrosoftAccount(microsoftOptions => { ... })
   .AddGoogle(googleOptions => { ... })
   .AddTwitter(twitterOptions => { ... })
   .AddFacebook(facebookOptions => { ... });
источник

н

назови меня клоуном... in var chat = new Chat();
ну я про контроллеры
источник

O

Oleg in var chat = new Chat();
Спасибо
источник

VL

Vova Lantsov in var chat = new Chat();
назови меня клоуном
ну я про контроллеры
Делаешь метод там, который использует SignInManager, поищи примеры именно с ним, думаю то что тебе надо
источник

VL

Vova Lantsov in var chat = new Chat();
назови меня клоуном
ну я про контроллеры
https://stackoverflow.com/a/38537337 тут про external читай
источник

н

назови меня клоуном... in var chat = new Chat();
спасибо
источник

VL

Vova Lantsov in var chat = new Chat();
Правда для web api использовать SignInManager скорее всего плохое решение
источник

VL

Vova Lantsov in var chat = new Chat();
Оно чёт с куками делает
источник

н

назови меня клоуном... in var chat = new Chat();
Vova Lantsov
Правда для web api использовать SignInManager скорее всего плохое решение
А ChallengeResult это разве не штука которая редиректит?
источник

н

назови меня клоуном... in var chat = new Chat();
Я просто все что находил это не апишная аутентификация
источник

н

назови меня клоуном... in var chat = new Chat();
а как апишная вообще должна происходить
источник

JS

John Stellmann in var chat = new Chat();
назови меня клоуном
А ChallengeResult это разве не штука которая редиректит?
У тебя кнопка AuthWithGoogle кинет тебя и при успешной аутентификаци вызовет вой апи метод, в нем ты уже выдаешь юзеру свой внутренний токен по айдентити
источник

VL

Vova Lantsov in var chat = new Chat();
назови меня клоуном
а как апишная вообще должна происходить
Скорее всего ставь себе пакет Google.Apis.Auth и делай запросы напрямую через него. Увы, не знаю что гугл возвращает, но на крайняк можно проверить акк юзера после авторизации и если ок то вручную создавать Claims и совать в ответ
источник

JS

John Stellmann in var chat = new Chat();
Для начала тебе нужна девелоперская учетка на гугле ,чтоб зарегистривать свое аппАйди
источник

н

назови меня клоуном... in var chat = new Chat();
Это я знаю
источник

н

назови меня клоуном... in var chat = new Chat();
Просто так с нуля это сложно сделать, энивей гайд нужен
источник

н

назови меня клоуном... in var chat = new Chat();
Концепция то ясна
источник