首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在我的ASP.Net Core2.0项目中实现活动目录?

在ASP.Net Core 2.0项目中实现活动目录,可以通过以下步骤进行:

  1. 首先,确保你的ASP.Net Core 2.0项目已经安装了Microsoft.AspNetCore.Authentication.ActiveDirectory包。可以通过NuGet包管理器或者在.csproj文件中手动添加引用来安装该包。
  2. 在Startup.cs文件中,添加以下代码来配置活动目录认证:
代码语言:csharp
复制
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options =>
        {
            options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
        .AddCookie()
        .AddOpenIdConnect(options =>
        {
            options.Authority = "https://login.microsoftonline.com/{your-tenant-id}";
            options.ClientId = "{your-client-id}";
            options.ClientSecret = "{your-client-secret}";
            options.CallbackPath = "/signin-oidc";
            options.ResponseType = "code";
            options.SaveTokens = true;
            options.Events = new OpenIdConnectEvents
            {
                OnRemoteFailure = OnAuthenticationFailed
            };
        });

        services.AddControllersWithViews();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseAuthentication();
        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }

    private Task OnAuthenticationFailed(RemoteFailureContext context)
    {
        context.HandleResponse();
        context.Response.Redirect("/Home/Error?message=" + context.Failure.Message);
        return Task.CompletedTask;
    }
}

在上述代码中,需要替换以下参数:

  • {your-tenant-id}: 替换为你的租户ID。
  • {your-client-id}: 替换为你的客户端ID。
  • {your-client-secret}: 替换为你的客户端密钥。
  1. 在需要进行活动目录认证的Controller或Action上,添加[Authorize]属性,以确保只有经过认证的用户可以访问。
代码语言:csharp
复制
[Authorize]
public class HomeController : Controller
{
    // ...
}

这样,当用户访问需要认证的页面时,系统将会重定向到活动目录登录页面进行认证。

请注意,以上代码仅为示例,实际使用时需要根据自己的具体情况进行配置和调整。

推荐的腾讯云相关产品:腾讯云身份认证服务(CAM)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker&Ubuntu从入门到实战开课啦~

任何课程都逃不开理论支持 久等了各位,在Asp.NET Core2.0 项目实战入门视频课程结束后,根据发起投票信息。Docker 排在首位。按照结果,我们开始进行Docker视频课程录制。...在课程开始之前,给大家准备了课件信息。和一些需要提前掌握理论知识和概念。 适合您吗? 您如果想了解Docker,想利用Docker进行开发,那么本系列课程就比较适合你了。...三大基础组件 常用Docker操作命令 Docker 容器管理 Docker镜像管理 Docker &Ubuntu 部署ASP.NET CORE项目(52ABP.SCHOOL) 课件 下面开始全是图部分...标题.png 目录.png 定位 image.png image.png image.png image.png image.png image.png image.png image.png...image.png 相关文章和课程 Asp.NET Core2.0 项目实战入门视频课程_完整版

32720

Docker&Ubuntu从入门到实战开课啦~

“ 任何课程都逃不开理论支持 & 课程还在录制中,请关注公众号获取最新消息~” 任何课程都逃不开理论支持 久等了各位,在Asp.NET Core2.0 项目实战入门视频课程结束后,根据发起投票信息...按照结果,我们开始进行Docker视频课程录制。 在课程开始之前,给大家准备了课件信息。和一些需要提前掌握理论知识和概念。 适合您吗?...三大基础组件 常用Docker操作命令 Docker 容器管理 Docker镜像管理 Docker &Ubuntu 部署ASP.NET CORE项目(52ABP.SCHOOL) 课件 下面开始全是图部分...目录.png ? 定位 ? image.png ? image.png ? image.png ? image.png ? image.png ? image.png ? image.png ?...相关文章和课程 Asp.NET Core2.0 项目实战入门视频课程_完整版 - END -

78260

CSharp工程中几个文件

以下基于.NET Framework4.6及.NET Core2.0 .csproj 用于配置项目信息,: 程序集名称、类型 Framework版本 项目所包含文件信息,:cs...注意,这里所引用是项目在运行时所需程序集,而.csproj中描述程序集是项目中添加引用,二者有区别:项目中添加引用在运行时未必会用到。...若项目启动后报错:未能加载文件或程序集“XXXXXX”或它某一个依赖,找到程序集清单定义与程序集引用不匹配,则应当检查下项目所引用dll文件与Web.config中配置dll文件信息是否一致。...注意,.NET Core项目(Console、ASP.NET Core)本质上是控制台程序,若要使用XML格式作为配置文件,建议使用App.config。...,,直接删除packages.config中对某个包引用,.csproj文件中依然保留了对该包引用,及packages文件夹中也会保留该包。

1.3K10

CSharp工程中几个文件

以下基于.NET Framework4.6及.NET Core2.0 .csproj 用于配置项目信息,: 程序集名称、类型 Framework版本 项目所包含文件信息,:cs、html、js、config...注意,这里所引用是项目在运行时所需程序集,而.csproj中描述程序集是项目中添加引用,二者有区别:项目中添加引用在运行时未必会用到。...newVersion="5.2.4.0"/> 若项目启动后报错:未能加载文件或程序集“XXXXXX”或它某一个依赖...注意,.NET Core项目(Console、ASP.NET Core)本质上是控制台程序,若要使用XML格式作为配置文件,建议使用App.config。...,,直接删除packages.config中对某个包引用,.csproj文件中依然保留了对该包引用,及packages文件夹中也会保留该包。

1.2K20

Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用EFDBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图控制器,然后...vs会根据你选择Model自动生成相应CURD控制器和View,非常便利,这种就叫做 ASP.NET Scaffolding Template,之前雪燕大大有过一篇介绍,有兴趣可以看看【传送门】...大家知道近期Asp.Net Core2.0发布了,微软也推出了Razor Page来作为默认Asp.Net Core Web项目,但一开始并没有提供Scaffolding Template(后简称ST...] Step 7 : 打开终端(CMD or Powershell) 先移步到项目目录(Program.cs和Startup.cs这个目录是:E:\project\aspnet\Demos\WebApplication4.../Index"); } 可以看到 它使用了Blog作为实体类集合名了,但在Step 3中,使用是Blogs,这应该是个bug,想提交,但没有找到相应项目。

1.1K60

ASP.NET Core2.2到3.0你可能会遇到这些问题

但是在阅读官方说明时候,总感觉翻译不是很准确,读起来很拗口,所以这里是自己理解对官方文档一个补充。...作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10661161.html 遇到问题 ASP.NET Core2.0时代,若要为项目添加 EF Core...但是在阅读官方说明时候,总感觉翻译不是很准确,读起来很拗口,所以这里是自己理解对官方文档一个补充。...若要在 ASP.NET Core 3.0 项目中使用 Json.NET: 添加到包引用Microsoft.AspNetCore.Mvc.NewtonsoftJson 更新ConfigureServices...若要启用运行时编译,请参阅ASP.NET Core 中 Razor 文件编译。 总结 感觉微软在努力实现ASP.NET Core模块化,减小各种依赖,让包变得更小。

1.4K20

.net core项目实战之开发环境搭建

然后右击你docker,选择setting,在Daemon里配置你地址: 最后配置一下你共享盘,让docker有权限读取相对应文件: 有一点注意一下:如果是公司电脑并且加域了,三个月换域名之后记得...项目时有个基于docker环境调试,避免在正式发布时有环境上差异。...新建一个 .net core项目 首先打开vs2017新建项目,选择ASP.NET Core Web应用程序 然后点击确定,选择.net core2.0,Web API,记住一定要勾选启用docker,...并选择Linux 点击确定后项目开始创建,项目中会产生一个docker-compose,这里面就是启动程序相关docker命令。...我们试着修改下映射端口,原本是映射80,怕80被其他程序占用: 到这里,可以直接点击运行项目: 当然,你也可以将你项目设为默认启动,这样就是使用IIS Express进行调试: 总结 相对于搭建

1.9K20

Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page

Razor Page介绍 前言     上周期待已久Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新特性和新功能,其中Razor Page引起关注,作为...版本是否为2.0.0 dotnet –version 先通过命令,到你需要创建项目的目录这里为E盘下demos目录:cd e:\demos\RazorPageDemo1 dotnet new razor...上文中我们说到,Razor Page目中,我们关注点都在Pages目录下,在VS Explore中,我们看到在Index.cshtml左边有一个三角箭头,点击就会看到Index.cshtml.cs...抱歉,目前没有找到最佳解决方法,原本我打算在@page "~/user/{id:int}",但是测试结果发现不支持,因为我们page对应到url也是一个目录,@page route时候它不会识别绝对路径和相对路径...写在最后     最近工作有点忙,Core2.0出现使Net圈沸腾了,RazorPage出现更是让我们这种web开发者为之振奋,今天介绍有限,毕竟也是刚出来东西。

2K60

Windows Server AppFabric:更好,更快,更便宜

AppFabric Caching Services一个主要组件是缓存客户端(cache client),asp.net页面,它访问缓存群集,缓存群集由多台运行缓存服务服务器组成,每台服务器都运行一个...多个缓存客户端可以共享相同缓存群集,这是有意义,因为一个可伸缩扩展应用程序可以横跨多个服务器复制它业务逻辑(asp.net页面),并访问缓存。...例如,对于类似于在线销售产品目录信息等变化较慢或基本没有变化数据,缓存有很好体验,它可以在同时满足多个客户端请求;缓存另一个应用是存储变化数据,但同时只能有一个客户端访问,asp.net...应用程序一般是通过服务方式暴露功能,对于Windows应用程序来说,这些服务很多情况下是通过WCF实现,同时,一些服务逻辑通过工作流来实现会更好,因此,在工作流基础上创建WCF服务也会有很大可能...欲启动服务,你可以使用模板创建一个新项目,并设置项目中Web属性,使其使用本地IIS服务器。构建你项目并运行,内建WCF测试客户端就会运行。

1.4K80

ASP.NET Core 基础知识】--前端开发--集成前端框架

下面将为展示如何使用 .NET CLI 在命令行中创建一个 ASP.NET Core 项目: 打开命令行界面: 打开命令行界面( PowerShell、CMD 或者终端),确保已经安装了 .NET...下面将展示如何在 ASP.NET Core 中创建和使用 RESTful API,并在前端框架中进行调用。...SignalR 使用 SignalR 实现前端框架(Angular、React、Vue)与 ASP.NET Core 通信可以实现实时双向通信,非常适用于需要实时更新应用程序,比如聊天应用、实时数据监控等...移除不必要依赖和插件 定期审查项目中依赖和插件,移除不再使用或者不必要部分。...可能需要进一步处理这些输出文件,将它们上传到 CDN、将它们复制到 ASP.NET Core 项目的静态文件目录中等。 部署到生产环境 将打包后前端资源部署到生产环境中。

11500

ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景

一直在写着讨论我们正在开发ASP.NET MVC框架系列贴子。...表单输入和提交场景 为示范如何在ASP.NET MVC框架中处理表单输入和提交场景一些基本原则,我们将建造一个简单产品列表,产品生成,和产品编辑场景。...一开始,在ASP.NET MVC项目中,右击/Models子目录,选择“添加新” -> “LINQ to SQL 类”,调出 LINQ to SQL ORM 设计器来对我们数据对象建模: ?...注意Html.Select辅助方法有个重载版本,允许你指定下拉框中选定值是什么。在下面的代码片断中,表示要Category下拉框根据编辑产品目前CategoryID值自动选择某一: ?...将讨论一些促进快速应用开发内置数据和安全支架(scaffolding)。将讨论你如何在MVC框架中使用ASP.NET AJAX进行启用AJAX编辑。

5.1K70

Jexus独立版本便利与过程中一些坑

本文环境与前言 之前写过一篇相关文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时部署还是比较繁琐,而且需要联网下载各种东西..有兴趣可以看看,但是...虽然已经出了.NET Core2.0 但是目前是预览版本,而且部署来说 相对比较麻烦....* 四、创建目录,部署Web站点: 于jexus默认网站配置文件指向物理路径是/var/www/default这里.....嗯..这个东西呢..是VS2015改用roslyn编译,新roslyn编译器,支持c# 6.0语法。它放到bin里面去是为了支持Asp.NET应用动态编译。 我们可以删除........嗯,比较蛋疼,在Autofac注入时候,报泛型类型..他竟然不识别..说是非泛型..一口老血喷在屏幕上,,, 解决方案是..发现.当时为了方便自动注入,所有的类都继承了一个空接口..

1.6K50
领券