? ? ? ? 前后端分離的開發(fā)中,應(yīng)用服務(wù)需要進(jìn)行用戶身份的驗(yàn)證才允許訪問數(shù)據(jù)。實(shí)現(xiàn)的方法很簡單。創(chuàng)建一個webapi項(xiàng)目。在App_Start目錄下找到WebApiConfig.cs, 在里面增加一個實(shí)現(xiàn)類。文章來源:http://www.zghlxwxcb.cn/news/detail-829874.html
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服務(wù)
config.Filters.Add(new CustomAuthorize());
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
public class CustomAuthorize : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
//如果用戶的Action帶有AllowAnonymousAttribute,則不用檢測
if (actionContext.ActionDescriptor.GetCustomAttributes<System.Web.Http.AllowAnonymousAttribute>().Any())
{
return;
}
app 接口檢測
object au = actionContext.Request.Headers.Authorization;
if (au == null)
{
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, new { Ret = 4002, Msg = "Token錯誤!" });
}
else if (!Redis.haskey(au.ToString()))
{
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, new { Ret = 4008, Msg = "Token超時!" });
}
}
}
}
Controller 類的實(shí)現(xiàn):文章來源地址http://www.zghlxwxcb.cn/news/detail-829874.html
[RoutePrefix("api/v1")]
public class ValuesController : ApiController
{
[AllowAnonymous] //匿名訪問
[Route("getData1"), HttpPost]
public JObject getData1([FromBody] JObject data)
{
return data;
}
//登錄訪問
[Route("getData2"), HttpPost]
public JObject getData2([FromBody] JObject data)
{
return data;
}
}
到了這里,關(guān)于asp.net web api 用戶身份驗(yàn)證的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!