網站首頁 編程語言 正文
? ? ? ? 前后端分離的開發中,應用服務需要進行用戶身份的驗證才允許訪問數據。實現的方法很簡單。創建一個webapi項目。在App_Start目錄下找到WebApiConfig.cs, 在里面增加一個實現類。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服務
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 類的實現:
[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;
}
}
原文鏈接:https://blog.csdn.net/ganyuanmen/article/details/136132412
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2023-04-24 一文掌握python中的__init__的意思及使用場景分析_python
- 2023-04-18 Python實現常見的4種坐標互相轉換_python
- 2022-07-20 python密碼學列置換密碼學習_python
- 2022-04-09 Python中緩存lru_cache的基本介紹和講解_python
- 2022-08-01 Flask-SQLALchemy基本使用方法_python
- 2022-11-21 正則表達式RegExp語法與用法詳解_正則表達式
- 2022-12-30 Android入門之在子線程中調用Handler詳解_Android
- 2022-05-13 可變參C API va_list,va_start,va_arg_va_end以及c++可變參模板
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支