实现了名为JwtAuthenticateAttribute的AuthorizedAttribute并执行了一些操作
可以为以下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将值传递给此控制器的功能。
P.S,该值存在于此属性的OnAuthorization中。
谢谢。
答案 0 :(得分:1)
在Onauthorize方法的“ actionContext.Request.Properties”中添加所需的值,并在控制器中访问它们。
添加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();
}
希望这会对您有所帮助。