Для ASP.NET 5 beta 6 при создании контроллера кажется, что вы больше не расширяете Controller (Microsoft.AspNet.Mvc.Controller). Итак, как мне получить доступ к текущему пользователю? Раньше я просто использовал свойство «Пользователь» у контроллера, чтобы получить System.Security.Claims.ClaimsPrincipal для пользователя, связанного с исполняемым действием. Без контроллера теперь «Пользователь» больше не определен.Получить текущего пользователя в контроллере ASP.NET 5 beta 6
Работает в Beta 5:
[Authorize]
[Route("[controller]")]
public class UserDetailsController : Controller
{
[HttpGet]
public JsonResult Get()
{
var user = User as ClaimsPrincipal;
var claims = from c in user.Claims
select new
{
type = c.Type,
value = c.Value
};
return new JsonResult(claims);
}
}
не работает в Beta 6:
[Authorize]
[Route("[controller]")]
public class UserDetailsController
{
[HttpGet]
public JsonResult Get()
{
var user = User as ClaimsPrincipal; // ERROR - The name 'User' does not exist in the current context
var claims = from c in user.Claims
select new
{
type = c.Type,
value = c.Value
};
return new JsonResult(claims);
}
}
Вы можете даже добавить 'public ClaimsPrincipal User => HttpContext? .User;' для удобства. –