1
我在我使用的令牌的承载来认证连接的用户网络API控制器检索令牌值:从网页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") ;
}
由于RESTful应用程序必须是无状态的,我想避免使用User.Identity
和替换该行
String userID = UserManager.FindByName(User.Identity.Name).Id;
我需要检索请求令牌承载,然后找到相应的 用户。
所以:
- 我怎样才能做到这一点?
- 做什么是最好的方法?
创建一个DelegateHandler或ActionFilter并检查标头的持票人标记。然后,您可以检索用户,创建用户的正确主体并将其设置在线程和httpcontext中 – Nkosi
@Nkosi请将您的评论发布为答案 –