Asp.net Core联合ADFS和Web应用程序代理
创始人
2024-09-15 21:30:44
0

要将ASP.NET Core与ADFS和Web应用程序代理集成在一起,可以按照以下步骤操作:

  1. 配置ADFS作为身份提供程序:

    • 在ASP.NET Core应用程序的Startup.cs文件中,添加以下代码:
      services.AddAuthentication().AddWsFederation(options =>
      {
          options.MetadataAddress = "https://your-adfs-server/FederationMetadata/2007-06/FederationMetadata.xml";
          options.Wtrealm = "https://your-app-url";
      });
      
  2. 配置Web应用程序代理:

    • 在ASP.NET Core应用程序的Startup.cs文件中,添加以下代码:
      app.UseRewriter(new RewriteOptions().AddRedirectToHttpsPermanent());
      app.UseHttpsRedirection();
      
      app.Use((context, next) =>
      {
          context.Request.Scheme = "https";
          return next();
      });
      
      app.Use((context, next) =>
      {
          context.Request.Headers["X-Forwarded-Host"] = context.Request.Host.Host;
          context.Request.Headers["X-Forwarded-Proto"] = "https";
          return next();
      });
      
      app.UseForwardedHeaders(new ForwardedHeadersOptions
      {
          ForwardedHeaders = ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto
      });
      
  3. 配置ASP.NET Core应用程序以使用ADFS进行身份验证:

    • 在ASP.NET Core应用程序的Startup.cs文件的ConfigureServices方法中,添加以下代码:
      services.Configure(options =>
      {
          options.KnownProxies.Add(IPAddress.Parse("127.0.10.1"));
      });
      
      services.Configure(options =>
      {
          options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
      });
      
      services.AddAuthentication(options =>
      {
          options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
          options.DefaultChallengeScheme = WsFederationDefaults.AuthenticationScheme;
      })
      .AddWsFederation(options =>
      {
          options.MetadataAddress = "https://your-adfs-server/FederationMetadata/2007-06/FederationMetadata.xml";
          options.Wtrealm = "https://your-app-url";
      })
      .AddCookie();
      
      services.AddMvc();
      
  4. 创建一个控制器和视图以处理登录和注销:

    • 在ASP.NET Core应用程序中,创建一个名为AccountController的控制器,并添加以下代码:

      [AllowAnonymous]
      public class AccountController : Controller
      {
          public async Task Login(string returnUrl = "/")
          {
              await HttpContext.ChallengeAsync(WsFederationDefaults.AuthenticationScheme,
                  new AuthenticationProperties { RedirectUri = returnUrl });
      
              return new EmptyResult();
          }
      
          [AllowAnonymous]
          public async Task Logout()
          {
              await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
              await HttpContext.SignOutAsync(WsFederationDefaults.AuthenticationScheme);
      
              return RedirectToAction("Index", "Home");
          }
      }
      
    • 创建一个名为Login.cshtml的视图,并添加以下代码:

      Login

      Login with ADFS
  5. 配置路由:

    • 在ASP.NET Core应用程序的Startup.cs文件的Configure方法中,添加以下代码:
      app.UseRouting();
      
      app.UseAuthentication();
      app.UseAuthorization();
      
      app.UseEndpoints(endpoints =>
      {
          endpoints.MapControllerRoute(
              name: "default",
              pattern: "{controller=Home}/{action=Index}/{id?}");
      });
      

这样,您的ASP.NET Core应用程序就可以与ADFS和Web应用程序代理集成在一起了。在浏览器中访问应用程序时,将会重定向到ADFS进行身份验证,并将身份验证成功后的用户信息返回给应用程序。

相关内容

热门资讯

突发!随意玩辅助器视频透视挂!... 突发!随意玩辅助器视频透视挂!果然真的有辅助下载(有挂工具)-哔哩哔哩1、下载好随意玩辅助器视频透视...
截至发稿!微信卡五星辅助器!真... 截至发稿!微信卡五星辅助器!真是真的是有辅助挂(发现有挂)-哔哩哔哩1、截至发稿!微信卡五星辅助器!...
做出回应!衢州都莱破解器!真是... 做出回应!衢州都莱破解器!真是有挂辅助软件(有挂实锤)-哔哩哔哩小薇(辅助器软件下载)致您一封信;亲...
今天下午!八仙游戏辅助!一贯存... 今天下午!八仙游戏辅助!一贯存在有辅助软件(有挂讲解)-哔哩哔哩1、进入到八仙游戏辅助是否有挂之后,...
经调查!道游辅助脚本!确实是真... 经调查!道游辅助脚本!确实是真的辅助脚本(有挂存在)-哔哩哔哩1、全新机制【道游辅助脚本ai辅助工具...
据相关数据显示!陕麻圈黑科技!... 据相关数据显示!陕麻圈黑科技!切实是有辅助软件(有挂详细)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...
不少玩家反映!福州十八扑有外g... 不少玩家反映!福州十八扑有外g挂吗!其实有挂辅助修改器(详细教程)-哔哩哔哩1、完成福州十八扑有外g...
记者获悉!福建兄弟13水辅助!... 记者获悉!福建兄弟13水辅助!总是是真的辅助安装(有挂方式)-哔哩哔哩1、完成福建兄弟13水辅助辅助...
截至目前!天天贵阳app破解版... 截至目前!天天贵阳app破解版!都是真的有辅助插件(有挂解惑)-哔哩哔哩1、实时天天贵阳app破解版...
截至发稿!掌中乐游戏中心云南辅... 截至发稿!掌中乐游戏中心云南辅助!一贯存在有辅助app(有挂规律)-哔哩哔哩掌中乐游戏中心云南辅助是...