我想保存在查看网页的数据库(日期和用户)中,该网页可以由授权和匿名用户访问。是否有一种方法可以使两种类型的操作一起使用,因为如果该操作是[AllowAnonymous]
,则该用户未通过身份验证,并且我无法检索用户ID;如果该操作是[Authorize]
匿名用户,则该用户将无法访问该页面。
[HttpGet]
[Route("{id}/Detail")]
[AllowAnonymous]
[ResponseType(typeof(JsonArticleDetail))]
public IHttpActionResult GetArticle(int id)
{
...
var entity = this.DbContext.Articles.Find(id);
var applicationUserId = User.Identity.IsAuthenticated ? User.Identity.GetUserId() : null;
entity.ArticleViews.Add(new ArticleView
{
ViewedOn = DateTime.UtcNow,
ApplicationUserId = applicationUserId
});
this.DbContext.SaveChanges();
return Ok(article);
}
解决的办法是同时拥有[AllowAnonymous]
和[Authorize]
行动上
[AllowAnonymous]
[Authorize]
public IHttpActionResult GetArticle(int id)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句