我正在构建一个具有基本帐户功能的 WebAPI AccountController,如 LogIn、LogOut、Register 等。
我的控制器顶部装饰有该[System.Web.Http.Authorize]
属性。
在以下方法中,经过身份验证的用户是我的本地系统用户,除非我用“AllowAnonymous”装饰该方法:
// GET/api/isAuthenticated
// [System.Web.Http.AllowAnonymous]
[System.Web.Http.HttpGet]
public HttpResponseMessage IsAuthenticated()
{
if (User.Identity.IsAuthenticated)
{
var userProfile = _service.GetUserProfile(WebSecurity.CurrentUserId);
return Request.CreateResponse(HttpStatusCode.OK, userProfile);
}
else
{
return Request.CreateResponse(HttpStatusCode.OK, false);
}
}
据我了解, AllowAnonymous 告诉控制器不要将 Authorize 属性应用于给定的方法。由于我正在构建一个 Web 应用程序,我从不想针对本地凭据进行授权。
我从 MVC SPA 模板中提取了这段代码,所以我想知道 - 当不使用 [AllowAnonymous] 时,如何将其更改为针对本地存储的用户凭据而不是系统用户进行授权?