在MVC控制器JsonResult方法中确定ASP.NET Identity的经过身份验证的用户

时间:2014-10-18 19:24:56

标签: asp.net-mvc

我正在使用MVC 5并且拥有一个View,其中包含对控制器的jQuery Ajax调用并检索一些数据。以前我无法进行此Ajax GET,因为控制器已标记为[Authorize],因此我将方法标记为[AllowAnonymous]

此时我需要确定经过身份验证的用户,但User.Identity显示IsAuthenticated = false。这是有道理的,但我需要知道如何在此方法中获取用户的身份。这是方法:

[AllowAnonymous]
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetDesignParams(string countrycode)
{
    ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());
    if (user != null)
    {
        ... do something ...
    }

    ... do something else ...

    return Json(rules, JsonRequestBehavior.AllowGet);
}

有没有办法在这个例程中获取用户身份而不从客户端Ajax GET传递用户ID?

1 个答案:

答案 0 :(得分:0)

您需要通过持有人令牌才能使类似API的方法安全

请参阅:Secure a Web API with Individual Accounts and Local Login