Identityserver4 如何配置运行在.Net Framework 4.7.1上的mvc客户端,以使用运行在.Net Core上的IdentityServer 4(3.1)进行身份验证

Identityserver4 如何配置运行在.Net Framework 4.7.1上的mvc客户端,以使用运行在.Net Core上的IdentityServer 4(3.1)进行身份验证,identityserver4,interactive,.net-framework-version,Identityserver4,Interactive,.net Framework Version,我不知道如何配置运行在.Net Framework 4.7.1上的mvc客户端,以使用运行在.Net Core上的IdentityServer 4(3.1)进行身份验证 我之前已经成功地针对IdentityServer4验证了运行在.net core上的客户端,但没有验证运行在.net Framework上的客户端。很遗憾,我无法将此客户端升级到.net core 基本上,我不确定如何在mvc客户端上执行此操作: public void ConfigureServices(IServiceCol

我不知道如何配置运行在.Net Framework 4.7.1上的mvc客户端,以使用运行在.Net Core上的IdentityServer 4(3.1)进行身份验证

我之前已经成功地针对IdentityServer4验证了运行在.net core上的客户端,但没有验证运行在.net Framework上的客户端。很遗憾,我无法将此客户端升级到.net core

基本上,我不确定如何在mvc客户端上执行此操作:

public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();

        JwtSecurityTokenHandler.DefaultMapInboundClaims = false;

        services.AddAuthentication(options =>
        {
            options.DefaultScheme = "Cookies";
            options.DefaultChallengeScheme = "oidc";
        })
        .AddCookie("Cookies")
        .AddOpenIdConnect("oidc", options =>
        {
            options.Authority = "https://myIdentityServer:4532";

            options.ClientId = "MVC_Net_Framework";
            options.ClientSecret = "mysecret";
            options.ResponseType = "code";
            
            options.Scope.Add("myScope");

            options.SaveTokens = true;
        });
    }

您需要使用OwinStartup类。在项目的根目录中添加分部类启动,如下所示

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Microsoft.Owin;
using Owin;
using Microsoft.Owin.Cors;
using System.Web.Http;
using System.Web.Mvc;
using System.Configuration;
[assembly: OwinStartup(typeof(MCVAppNet7.Startup))]
namespace MCVAppNet7
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var services = new ServiceCollection();

            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            ConfigureAuth(app);

            // For Access-Control-Allow-Origin
            app.UseCors(CorsOptions.AllowAll);

        }
    }

}
在此之后,在“App_Start”文件夹中并在此创建部分启动类中创建一个新文件“Startup.Auth.cs”

using System.Configuration;
using Owin;
using Microsoft.Owin.Security.Cookies;
using IdentityServer3.AccessTokenValidation;
using System;

namespace MCVAppNet7
{
    public partial class Startup
    {
        public void ConfigureAuth(IAppBuilder app)
        {
            try
            {
                app.UseCookieAuthentication(new CookieAuthenticationOptions
                {
                    AuthenticationType = "Cookies"
                });
                
                app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
                {
                    Authority = "",
                    ClientId = "",
                    AuthenticationType = "Bearer",
                    RequiredScopes = new[] { "" },
                    ValidationMode = "",
                    PreserveAccessToken = true,
                    RequireHttps = ""
                });
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

从NuGet安装这些软件包

  • Microsoft.Owin
  • Microsoft.Owin.Security.OAuth
  • Microsoft.Owin.Host.SystemWeb
  • 识别模型
  • IdentityServer3.Contrib.AccessTokenValidation
我正在使用IdentityServer3.Contrib.AccessTokenValidation,它对我有效,但它可能与IdentityServer4.AccessTokenValidation和更多信息一起使用