.net web api AuthorizeAttribute передает параметр в контроллер - PullRequest
0 голосов
/ 14 декабря 2018

AuthorizedAttribute с именем JwtAuthenticateAttribute реализован и что-то сделал

Он может быть запущен для каждого запроса нижеприведенного API

[HttpGet]
[JwtAuthenticate]
public GetFaqListDS Index([FromUri] GetFaqListModel model)
{
    List<MP_faqs> res = Faq.GetFaqList(model.curPage, model.pageSize);
    var re = Request;
    var hds = re.Headers;
    GetFaqListDS ds = new GetFaqListDS();
    ds.data = res;
    return ds;
}

Вопрос в том, как передать значение этомуФункция контроллера из атрибута JwtAuthenticate.

PS значение существует при включении этого атрибута.

Спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

Добавьте требуемое значение в "actionContext.Request.Properties" в методе Onauthorize и получите доступ к ним в контроллере.

Добавление модели UserDetail:

actionContext.Request.Properties.Add("__user", new UserDetails(){userid=123, username="ABC"});

Получение значений:

private static UserDetails GetUserDetailsFromRequest()
    {
        object tempVal;
        try
        {
            var httpRequestMessage = (HttpRequestMessage)HttpContext.Current.Items["MS_HttpRequestMessage"];
            httpRequestMessage.Properties.TryGetValue("__user", out tempVal);
            if (tempVal == null) return null;
            var user = (UserDetails)tempVal;
            return user;
        }
        catch
        {
        }
        return new UserDetails();
    }

Надеюсь, это поможет вам.

...