0
我正在使用MVC 5並且有一個包含對控制器的jQuery Ajax調用並檢索一些數據的View。之前我無法制作這個Ajax GET,因爲控制器被標記爲[Authorize]
,所以我將該方法標記爲[AllowAnonymous]
。在MVC控制器中確定ASP.NET身份驗證的用戶JsonResult方法
此時我需要確定已驗證的用戶,但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的方法是什麼?
如果你想知道用戶的身份,你需要驗證他們的身份 - 即你需要Authorize屬性,或者您需要以某種其他方式禁用匿名訪問。你說當你這樣做時,你「無法做出這個Ajax GET」 - 這是你需要解決的問題。如果你自己無法解決,請提供更多詳細信息 - 例如你怎麼做認證? – Joe 2014-10-18 19:33:56
我刪除了[[AllowAnonymous]]屬性,現在'Identity.IsAuthorized'等於true。我不記得爲什麼我覺得我需要讓我的JsonResult方法允許匿名。你的評論讓我重新思考這個問題,我認爲這是一個答案。如果你想創建一個答案,那麼不需要在控制器中匿名獲取Ajax GET方法和/或使它們匿名將導致User.Identity.IsAuthenticated = false。謝謝你指點我這個方向。 – rwkiii 2014-10-18 21:41:00