ASP.NET Identity2 - 如何使用 AllowAnonymous 控制器获取用户 ID?
ASP.NET Identity2 - How to get User Id with AllowAnonymous Controller?
我想将浏览网页的用户(日期和用户)保存在授权用户和匿名用户可以访问的数据库中。有没有一种方法可以使操作同时适用于这两种类型,因为如果操作是 [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)
我想将浏览网页的用户(日期和用户)保存在授权用户和匿名用户可以访问的数据库中。有没有一种方法可以使操作同时适用于这两种类型,因为如果操作是 [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)