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

如何在ASP.NET Core2.0MVC应用程序的HomeController中获取当前的外部提供者

在ASP.NET Core 2.0 MVC应用程序的HomeController中获取当前的外部提供者,可以通过以下步骤实现:

  1. 首先,确保你的ASP.NET Core 2.0 MVC应用程序已经引用了Microsoft.AspNetCore.Authentication包。可以在项目文件(.csproj)中添加以下引用:
代码语言:txt
复制
<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.0.0" />
</ItemGroup>
  1. 在HomeController中,添加以下命名空间引用:
代码语言:txt
复制
using Microsoft.AspNetCore.Authentication;
  1. 在HomeController的方法中,可以通过HttpContext的Authentication属性获取当前的外部提供者。例如,可以在Index方法中获取当前的外部提供者:
代码语言:txt
复制
public IActionResult Index()
{
    var externalProvider = HttpContext.Authentication.GetAuthenticateInfoAsync(
        "ExternalCookie").Result?.Principal?.Identity?.AuthenticationType;
    
    // 处理外部提供者
    // ...
    
    return View();
}

在上述代码中,我们使用GetAuthenticateInfoAsync方法来获取当前的外部提供者的身份验证信息。"ExternalCookie"是外部提供者的身份验证方案名称,可以根据实际情况进行修改。

  1. 处理外部提供者的逻辑。根据获取到的外部提供者的身份验证信息,可以进行相应的处理。例如,可以根据外部提供者的身份验证类型来显示不同的内容或执行不同的操作。

需要注意的是,以上代码仅适用于ASP.NET Core 2.0版本。如果使用的是其他版本的ASP.NET Core,可能需要进行相应的调整。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云身份认证服务(CAM):https://cloud.tencent.com/product/cam
  • 腾讯云API网关:https://cloud.tencent.com/product/apigateway
  • 腾讯云云函数(Serverless):https://cloud.tencent.com/product/scf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

3.1K20

何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

5.6K20

.net core学习笔记,组件篇:服务注册与发现(Consul)初篇

在这里我举一个生活中非常普遍例子——网购来简单说明,网购在我们日常生活已经是非常普遍了,其实网购(商家—菜鸟驿站—买家),就组成了一个非常简单注册发现逻辑。...使用类似DNS或者HTTP,应用程序和可以很轻松发现他们依赖服务。...键值对存储:应用程序可以使用Cousul层级键值对。 多数据中心:Consul有开箱及用多数据中心。...5、如何在asp.net core中使用Consul 概念性内容已经讲差不多了,下面我们来看看如何在asp.net core+windows下使用Consul。...参数介绍: Version:consul版本 Node ID:consul当前启动节点ID Node name:consul当前启动节点名称,默认当前电脑名称 Datacenter:数据中心 Service

65920

ASP.NET5 Beta8可用性

托管ASP.NET 5应用程序在IIS现在将使用配置为通过转发到ASP.NET 5红隼服务器IIS HttpPlatformHandler实现。...此本机IIS模块管理外部应用程序主机过程发起(在此情况下dnx.exe)和从IIS请求到托管进程路由。 简化模型到一个托管选项(但仍支持在同一场景)用于开发人员代码和测试更少东西。...) 统一服务故事 统一启动时故事(无奇AspNetLoader.dll在bin文件夹) 你会发现,在Visual StudioASP.NET 5项目模板已被更新,包括在应用程序wwwroot...Visual Studio手柄设置DNX_PATH环境变量指向适当DNX版本为您应用程序。 当您发布应用程序在web.config流程路径更新为指向您应用程序定义“网络”命令。...您也可以提供自己实现从不同来源获取本地化内容,比如形成一个数据库。 你可以看到,在本地化回购这些本地化功能完整工作样本。

1.8K160

ASP.NET Core依赖注入深入讨论

依赖注入是ASP.NET Core核心,它能让您应用程序组件增强可测试性,还使您组件只依赖于能够提供所需服务某些组件。...违反这条规则后果显而易见,依赖组件可能会在依赖项之前释放。 通常,您希望将组件(应用程序范围配置容器)注册为Singleton。...IDataService>(dataService); services.AddSingleton(dataService); 如果组件具有依赖关系,则可以从服务集合构建服务提供者并从中获取必要依赖项...RequestServices属性类型是IServiceProvider,因此它与实现工厂提供者完全相同。如果您打算要求拿到这个组件,可以使用GetRequiredService()。...如果您想访问控制器/视图/视图组件之外HttpContext,那怎么办?例如,要访问当前登录用户声明?

2.1K10

ASP.NET Core HttpContext 详解与使用 | Microsoft.AspNetCore.Http 详解

访问页面时,会产生 Cookie、Seesion、提交表单、上传数据、身份认证等,外部应用程序之间传导导体就是 HttpContext。  ...总之,客户端跟 Web应用程序交互 是通过 HttpContext 传导。 原理 ASP.NET Core 本质是一个控制台程序!...ASP.NET Core 程序并不直接监听请求,而是通过依赖 HTTP Server ,来实现把各自请求转发到应用程序。...打开 VS(2017) 新建项目 ASP.NET Core Web 应用程序 Web应用程序(模型视图控制器) 打开 Startup.cs ,在 ConfigureServices ,加上 1 services.AddSingleton...----  HttpContext 类型属性和方法 在 ASP.NET Core ,系统为每一个请求分配一个线程,HttpContext 针对,就是一个线程。

2.4K20

何在 asp.net core 3.x startup.cs 文件获取注入服务

必定会造成之前某些写法没办法继续使用,趁着端午节假期,在改造模板时,发现没办法通过构造函数注入形式在 Startup 文件中注入某些我需要服务了,因此本篇文章主要介绍如何在 asp.net core...3.x startup 文件获取注入服务 二、Step by Step 2.1、问题案例 这个问题发现源于我需要改造模型验证失败时返回错误信息,如果你有尝试的话,在 3.x 版本你会发现在...30 而在 asp.net core ,因为会自动进行模型验证,当不符合 dto 属性要求时,接口会自动返回错误信息,默认返回信息如下图所示 ?...(GenericHostBuilder),没办法注入除 IConfiguration 之外任何服务到 Startup类,而泛型主机则是在 asp.net core 3.0 添加功能 查了下升级日志...,而服务定位则是我们已经知道存在这个服务了,从容器获取出来然后由自己手动创建实例 虽然服务定位是一种反模式,但是在某些情况下,我们又不得不采用 这里对于本篇文章开篇需要解决问题,我也是采用服务定位方式

2.1K30

ASP.NET Core + SaasKit + PostgreSQL + Citus 多租户应用程序架构示例

在 确定分布策略 , 我们讨论了在多租户用例中使用 Citus 所需与框架无关数据库更改。当前部分研究如何构建与 Citus 存储后端一起使用多租户 ASP.NET 应用程序。...ASP.NET Core 将检查传入请求并在 tenants 表查找域。您还可以按子域(或您想要任何其他 scheme)查找租户。...OnModelCreating 方法允许您覆盖默认名称转换并让 Entity Framework Core 知道如何在数据库查找实体。 现在您可以添加代表租户和问题类。...@question.Title } @inject 指令从 SaasKit 获取当前租户...添加更多租户现在只需在 tenants 表添加更多行即可。 更多 探索 Python/Django 支持分布式多租户数据库, Postgres+Citus

1.9K20

自己动手写一个简单MVC框架(第一版)

三、改造DEMO:借助反射让多态发光 3.1 在Global文件模拟路由规则表   想想我们在ASP.NET MVC项目中是不是首先向程序注册一些指定路由规则,因此这里我们也在Global.asax...管道工作,实现MvcHandler   在ASP.NET请求处理管道,具体处理工作都是转交给了实现IHttpHandler接口Handler对象进行处理。...四、小结   本文首先回顾了一下MVC关键概念,并从一个“纯净”ASP.NET Web空项目开始一步一步构建一个类似于MVC应用程序,通过单一处理入口伪静态方式与模拟路由表方式进行了简单地实现...路由模块就是一个很简单HttpModule(如果您对HttpModule不熟悉,请浏览我翻译一篇文章:ASP.NET应用程序和页面生命周期),而ASP.NET MVC帮我们实现了UrlRoutingModule...从而使我们轻松实现了路由机制,该机制获取了路由数据,并制定处理程序(MvcHandler),执行MvcHandlerProcessRequest方法找到对应Controller类型,最后将控制权交给对应

90421

【21】ASP.NET CoreMVC 控制器

ASP.NET CoreMVC 控制器 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自《从零开始学 ASP.NET Core...是什么以及它在 ASP.NET Core MVC 作用。...例如 HomeController,StudentController。 当来自浏览器请求到达我们应用程序时,作为 MVC 控制器,它会处理传入 http 请求并响应用户操作。...此映射是由我们应用程序路由规则定义完成。 我们将在即将发布视频详细讨论 ASP.NET Core MVC 路由。 请求到达控制器动作方法。...我们在之前ASP.NET Core 教程视频讨论了**[依赖注入]** 请注意,我们将注入依赖项分配给readonly字段。这是一个很好做法,因为它可以防止在方法中意外地为其分配另一个值。

1.7K30

【19】ASP.NET Core 依赖注入

ASP.NET Core 依赖注入 在这个视频,我们将通过一个例子详细讨论依赖注入。...我们在 Startup 类 ConfigureServices()方法执行此操作 使用 ASP.NET Core 依赖注入容器注册服务: ASP.NET Core 提供以下 3 种方法来使用依赖项注入容器注册服务...例如,在 Web 应用程序,它为每个 http 请求创建 1 个实例,但在同一 Web 请求其他服务在调用这个请求时候,都会使用相同实例。...那么,如果我们在我们应用程序 50 个其他控制器中使用了这个MockStudentRepository呢? 所有 50 个控制器代码都必须更改。这不仅无聊而且容易出错。...使用依赖注入,即使我们在我们应用程序 50 个其他控制器中使用了MockStudentRepository,如果我们想用不同实现交换它,我们只需要在 Startup.cs 文件更改以下一行代码

1.3K30

ASP.NET MVC是如何运行: 建立在“伪”MVC框架上Web应用

前面定义HomeController定义在命名空间WebApp下,由于请求地址只能解析出Controller类型名称,我们需要将该命名空间注册为当前ControllerBuilder默认命名空间...正如我上面所说,ASP.NET MVC是通过一个自定义HttpModule实现,在这个“迷你版”ASP.NET MVC框架我们也将其起名为UrlRoutingModule。...为了 让定义在HomeControllerAction方法Index来处理针对该Web应用访问请求,我们需要指定与之匹配地址(符合定义在注册地址模板URL模式)。.../Home/Index)正好对应着HomeControllerIndex操作,所以对应方法会被执行,而执行结果就是将当前请求目标Contrller和Action名称显示出来。 ?...上面我们我们演示了如何在我们自己创建“迷你版”ASP.NET MVC框架创建一个Web应用,从中我们可以看到和创建一个真正ASP.NET MVC应用别无二致。

1.3K60

关于 ASP.NET 内存缓存你需要知道 10 点

缓存机制主要目的是提高应用程序性能。作为 ASP.NET 开发人员,你可能会意识到 ASP.NET Web 窗体以及 ASP.NET MVC 可以使用 Cache 对象缓存应用程序数据。...在进一步阅读之前,你先创建一个基于 Web 应用程序项目模板 ASP.NET Core 应用程序。 ? 然后按照下面提到步骤逐一构建和测试由内存缓存提供各种功能。 1....你可以使用 Get 方法来从缓存获取到一个数据项 等你向缓存添加好了数据,也许会想要在应用程序其它地方去获取到该数据,可以用 Get() 来做到。如下代码会告诉你如何来做这件事情。 ?...第二个参数是一个你会想要传递给回调函数状态对象。这里我们传入了 HomeController 实例 (用 this 将当前 HomeController 对象“点”出来) 作为状态对象。...你可以通过在 Show() 这个 action 获取一下所有这三个键来确认它们是否已经被删除掉了。 为了测试这个例子,运行应用程序并导航至 /Home/Index。

1.2K20

异步线程无法使用IServiceProvider?

一、问题重现 我们通过一个简单实例来模拟该同事遇到问题。我们采用极简方式创建了如下这个ASP.NET Core MVC应用。...具体来说,在异步执行操作,我们利用调用上面注入这个IServiceProvider对象GetRequiredService方法试图获取一个IFoobar服务实例。...由于这段操作时在一个Try/Catch执行,抛出异常消息堆栈信息会直接输出到控制台上。...对于我们演示实例来说,注入到HomeController构造函数IServiceProvider是RequestServices,由于针对RequestServices使用是在另一个后台线程执行...,并且在使用时候针对当前请求处理已经结束(因为我们人为等待了100毫秒),自然就会出现上图所示异常。

1K40

一小时学会ASP.NET Core,马上构建你第一个Web应用

欢迎进入ASP.NET Core快速入门指南!ASP.NET Core是一款跨平台Web应用程序开发框架,它具有高度灵活性和性能优势,适用于构建各种规模和类型Web应用程序。让我们开始吧!...步骤2:创建ASP.NET Core项目 打开命令行工具(Windows命令提示符或PowerShell,或者MacOS/Linux终端),使用以下命令创建一个新ASP.NET Core Web...打开您喜欢代码编辑器(Visual Studio Code或Visual Studio),在项目文件夹,您将看到以下文件和文件夹: Program.cs:这是应用程序入口点,它配置和启动应用程序...在Controllers文件夹,创建一个名为HomeController.cs新文件,并添加以下代码: using Microsoft.AspNetCore.Mvc; public class HomeController...从这个简单开始,您可以继续学习更多ASP.NET Core功能和特性,逐步构建更加复杂和功能丰富Web应用程序。祝您在ASP.NET Core学习之旅取得成功!

27510

Asp.net MVC 之 Contorllers(一)

基于当前ASP.NET运行时环境和MVC模式,诞生了一个新架构——ASP.NET MVC,这种组合Web开发模式顺应了当今开发趋势。    ...在ASP.NET应用程序中使用大多数URL是由两部分组成:包含逻辑物理网页路径,和一些填充在查询字符串作为参数数据。这种方式已经使用了有些年了,现在仍在被使用。...事实上,我们可以使用请求处理程序请求信息,来确定外部实际服务请求。按照这种方式,一个简单HTTP请求程序可以服务于大量请求,只要调用一些更加专门组件。...根据实例,,最终类名是MvcEmule.Components.HomeController。预计这个类对于应用程序是可用,也暴露一个名为Test方法。...在此示例,我们只是使用硬编码 URL。在 ASP.NET MVC ,有一种非常灵活语法,可以使用表示应用程序能够识别的这些 Url。

1K70

ASP.NET Core 上传多文件 超简单教程

打开VS 2017    --新建 ASP.NET Core Web 应用程序     --Web 应用程序(模型视图控制器)  程序名字、路径,默认即可 ---- 删除不必要内容 打开 HomeController.cs...文件,删除所有方法 打开 Views/Home目录,删除所有文件 在应用程序 新建 file 目录 ---- 开始编程 那么,现在来写程序,实现文件上传 第一步  文件上传界面 在 HomeController...); } 然后在 Views/Home 目录添加一个视图 Upload.cshtml 把以下代码复制到 Upload.cshtml 这部分就是一个文件上传表单,没有什么特殊,这里不解释代码作用.../Home/Upload 即可看到运行界面 请选择体积较小文档文件txt、doc、pdf,图片等进行测试,上传文件不要太多 不用选择太多、体积大文件、dll文件、可运行文件等等,不然有可能报错。...ContentType 获取上载文件原始Content-Type标头。 FileName 从Content-Disposition标头中获取文件名。 Headers 获取上传文件标题字典。

4.7K30
领券