dotnet core 加入小组

426个成员 39个话题 创建时间:2017-09-10

使用 IdentityServer4 保护 ASP.Net Web 应用程序(.Net Framework)【API】 精华

发表于03-20 680次查看

参考 :https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients/SampleAspNetWebApi

 

思路:因为使用了IdentityServer4 ,所以在.Net Framework上用IdentityServer3Owin结合

1.正常编译初始化的应用

2.删除 Global.asax 文件

3.添加 Startup.cs 文件 ,内容如下,按顺序添加如下 Package

检查 System.IdentityModel.Tokens 要 5.0 以下版本的,我用的(4.0.4.403061554)

using System.IdentityModel.Tokens;
using System.Web.Http;
using IdentityServer3.AccessTokenValidation;
using Microsoft.Owin;
using Microsoft.Owin.Cors;
using Owin;
using Api.Framework;

[assembly: OwinStartup(typeof(Startup))]

namespace Api.Framework
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();

            app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "http://localhost:5000",
                RequiredScopes = new[] { "api1" }
            });

            var config = new HttpConfiguration();
            WebApiConfig.Register(config);
            app.UseCors(CorsOptions.AllowAll);
            app.UseWebApi(config);
        }
    }
}

4. 在控制器上打上  [Authorize] 标签

5. 启动服务器 (http://localhost:5000)

6. 启动 API

7. 启动 客户端验证

2回复
发表回复
你还没有登录,请先 登录或 注册!