網站首頁 編程語言 正文
? ? ? ? 前后端分離的開發中,應用服務需要進行用戶身份的驗證才允許訪問數據。實現的方法很簡單。創建一個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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-09-21 .NET中求復雜類型集合的差集、交集、并集_實用技巧
- 2023-12-08 maven中mybatis-generator插件執行報錯:Cannot resolve class
- 2022-08-25 windows下搭建Consul集群_云其它
- 2022-05-08 C#使用Unity實現IOC_實用技巧
- 2022-02-28 ./node_modules/taro-ui/dist/weapp/index.ts Module
- 2022-06-27 ASP.NET?MVC開發接入微信公共平臺_實用技巧
- 2022-10-09 淺談Redis處理接口冪等性的兩種方案_Redis
- 2022-09-06 C語言超詳細講解指向函數的指針_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同步修改后的遠程分支