На Авторизацию не звонит мой ПУТ и после звонка - PullRequest
0 голосов
/ 23 января 2019

У меня есть код для проверки подлинности ниже, он работает нормально при получении вызова isValid.Result true Get Call Работает нормально, но он не вызывает мой контроллер PUT и POST, я добавляю отладчик в свой пост и помещаю вызов.Но это не вызывает мой пост и поставить функцию?

  public class HMAuthentication : Attribute, IAuthorizationFilter
    {
        private static Dictionary<string, string> allowedApps = new Dictionary<string, string>();
        private readonly UInt64 requestMaxAgeInSeconds = 300;  //5 mins
        private readonly string authenticationScheme = "aa";
        public void OnAuthorization(AuthorizationFilterContext context)
        {
  var isValid = isValidRequest(requests, APPId, incomingBase64Signature, nonce, requestTimeStamp);

                if (isValid.Result)
                {
                    var currentPrincipal = new GenericPrincipal(new GenericIdentity(APPId), null);                   
                }
}
}

ПОЛУЧИТЬ ВЫЗОВ РАБОТЫЙ ШТРАФ

 [Route("api/[controller]")]
    [ApiController]
    public class InfoController : ControllerBase
    {
        private IUserService _info;

        public InfoController (IUserService info)
        {
            _info= info;
        }
     [HttpGet("GetInfo/{Id}")]
                public async Task<UserBase> GetInfo(int Id)
                {
                    return await _info.GetInfo(Id);
                }

PUT CALL

     [HttpPut]
            [Route("UpdateParent")]
            public async Task<int>  UpdateParent([FromBody] parent parentInfo)
            {
                return await _info.UpdateParent(parentInfo);
            }
}

Startup.cs

 services.AddMvc(options => options.Filters.Add(new HMAuthentication ())).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

1 Ответ

0 голосов
/ 24 января 2019

Я считаю, что проблема может быть в атрибуте [Route("UpdateParent")].Но я не могу сказать много без routeConfig.Возможно, быстрое исправление, которое вы могли бы использовать в случае неправильной маршрутизации, - добавление явного маршрута для этого запроса и проверка правильности работы аутентификации.Вот пример:

Добавьте это в файл routeConfig.cs, находящийся в папке AppStart:

routes.MapRoute(
    name: "UpdateParentHandler",
    url: "api/InfoController/UpdateParent",
    defaults: new { controller = "InfoController", action = "UpdateParent" }
);

PS: HardCoding маршрутов не является хорошей практикой.Тем не менее, вы можете использовать это как временное решение, пока работаете над своей проблемой!Ура :) 1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...