我有一个Web API控制器,在其中使用了令牌承载来验证连接的用户:
protected ApplicationUserManager UserManager
{
get
{
return _UserManager ?? HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
}
[Route("Create")]
[HttpPost]
public IHttpActionResult CreateEvent(CreateEventModel model)
{
String userID = UserManager.FindByName(User.Identity.Name).Id;
int EventID = EventRep.CreateEvent(userID, model.EventTitle, model.EventDate, model.NbParticipent, model.Description, model.Logo);
if(EventID > 0) return Ok(EventID);
return BadRequest("paramètres invalides") ;
}
因为一个宁静的应用程序必须是无状态的,所以我想避免使用User.Identity
和替换此行
String userID = UserManager.FindByName(User.Identity.Name).Id;
我需要从请求中检索令牌承载,然后找到相应的用户。
所以 :
您可以创建一个DelegateHandler
或ActionFilter
来检查请求标头中是否有承载令牌。
然后,您可以检索用户,创建IPrincipal
用户的权限并将其设置在当前线程和中HttpContext
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句