码迷,mamicode.com
首页 > Windows程序 > 详细

webapi框架搭建-安全机制-身份验证(二)

时间:2018-01-14 17:40:39      阅读:363      评论:0      收藏:0      [点我收藏+]

标签:tip   optional   contex   sum   multi   can   except   http请求   return   

  身份验证(authentication)的责任是识别出http请求者的身份,除此之外尽量不要管其它的事。webapi的authentication我用authentication filter技术去解决。

参考资料:

  https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/authentication-filters

步骤如下

创建authentication filter

  在项目里新建文件夹Security,并在此文件夹里创建IdentityBasicAuthentication类,代码如下

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http.Filters;

namespace webapi.Security
{
    public class IdentityBasicAuthentication:IAuthenticationFilter
    {
        public bool AllowMultiple { get; }
        public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
        {
            throw new NotImplementedException();
        }

        public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
        {
            throw new NotImplementedException();
        }
    }
}

  继承自IauthenticationFilter,实现自己的业务代码(后面再实现)

注册authentication filter

  在webapi的config里加入filter,修改项目代码如下

 /// <summary>
        /// 返回webapi的httpconfiguration配置
        /// 用于webapi应用于owin技术时使用
        /// </summary>
        /// <returns></returns>
        public static HttpConfiguration OwinWebApiConfiguration(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();//开启属性路由
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            config.Filters.Add(new WebApiExceptionFilterAttribute());
            config.Filters.Add(new IdentityBasicAuthentication());
            return config;
        }

  即上一句:config.Filters.Add(new IdentityBasicAuthentication());

 

webapi框架搭建-安全机制-身份验证(二)

标签:tip   optional   contex   sum   multi   can   except   http请求   return   

原文地址:https://www.cnblogs.com/shengyu-kmust/p/8283650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!