zoukankan      html  css  js  c++  java
  • WebApi 后台获取token值

    前台传递一个token,后台不知道怎么获取那么不是很悲剧吗。

     $(function () {
    
            $.ajax({
                url: "/api/TokensTest/FirstCode",
                data: {},
                type: "Get",
                dataType: "json",
                beforeSend: function (request) {
                    request.setRequestHeader("Test", "woshiyanzhengma");
                },
                success: function (data) {
                    console.log(JSON.stringify(data));
                },
                error: function (err) {
                    alert(err);
                }
    
            });
    
        });

    至于token 作用就不必说了,大家都知道,要不你也不会看到这篇文章。

    重点来了。我们使用 AuthorizeAttribute 这个过滤器来处理。

    public class BautA : AuthorizeAttribute
        {
             
            public override void OnAuthorization(HttpActionContext actionContext)
            {
                var authorization = actionContext.Request.Headers.Authorization;
    
    
                var content = actionContext.Request.Properties["MS_HttpContext"] as HttpContextBase;
                var token = content.Request.Headers["Test"];   //这里是拿到了token 的值 也就是  “woshiyanzhengma

    if (actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>(true).Count != 0 || actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>(true).Count != 0) { base.OnAuthorization(actionContext);//正确的访问方法 } } }

    下面是如何使用

      [BautA]
        public class TokensTestController : ApiController
        {
    
            [HttpGet]
           
            public List<Company> FirstCode()
            {
                
                
    
                List<Company> list = new List<Company> {
                    new Company{id=1,Name="探路者",Address="江苏南京",Phone="15996413689" },
                    new Company{id=2,Name="探索者",Address="江苏南京",Phone="15996413689" },
                    new Company{id=3,Name="开拓者",Address="江苏南京",Phone="15996413689" },
                    new Company{id=4,Name="探路者",Address="江苏南京",Phone="15996413689" },
                    new Company{id=5,Name="探路者",Address="江苏南京",Phone="15996413689" },
                };
                 
                return list;
            }
  • 相关阅读:
    encodeURIComponent编码时为什么要编码两次
    JS校验身份证号的合法性
    react-router与react-router-dom使用时的区别
    数组去重
    window的cmd命令行下新增/删除文件夹及文件
    数组排序【冒泡排序、快速排序、选择排序】
    个人搭建后台管理模板 Bootstrap4 ,ASP.NET Core,EF Core,JWT
    个人搭建后台管理模板 Bootstrap4 ,ASP.NET Core,EF Core,JWT
    react-starter-projects
    基于H.ui.Admin UI模板的网站管理后台
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/9942371.html
Copyright © 2011-2022 走看看