ASP.NET Core 在开发环境中禁用身份验证

2024-01-29

是否可以在 ASP.NET Core 应用程序中“禁用”身份验证而不更改其逻辑?

我有一个 .net 网站,它使用外部身份服务器应用程序进行身份验证。 无论如何,我希望能够在开发时模拟身份验证(ASPNETCORE_ENVIRONMENT = Development),公开对所有操作的访问,忽略授权属性。

是否可以仅模拟服务集合中的某些服务来做到这一点?


更新到 net core 3.1 时,mvcAllowAnonymousFilter不再为我们工作了。我们发现有条件地添加自定义IAuthorizationHander是有条件绕过身份验证的最简单方法。

eg.

/// <summary>
/// This authorisation handler will bypass all requirements
/// </summary>
public class AllowAnonymous : IAuthorizationHandler
{
    public Task HandleAsync(AuthorizationHandlerContext context)
    {
        foreach (IAuthorizationRequirement requirement in context.PendingRequirements.ToList())
            context.Succeed(requirement); //Simply pass all requirements
        
        return Task.CompletedTask;
    }
}

然后有条件地注册这个处理程序Startup.ConfigureServices.

private readonly IWebHostEnvironment _env;
public Startup(IWebHostEnvironment env)
{
    _env = env;
}

public void ConfigureServices(IServiceCollection services)
{
  {...}

  //Allows auth to be bypassed
  if (_env.IsDevelopment())
    services.AddSingleton<IAuthorizationHandler, AllowAnonymous>();
}

Note AddAuthentication and AddAuthorization服务仍然按照产品代码注册和配置(这很好)。

为了允许我们的单元测试绕过身份验证,我们添加了一个新的匿名测试库,其中包含一个启动类,该启动类无条件地添加了这一行。又好又简单!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Core 在开发环境中禁用身份验证 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • 赋值运算符和复制构造函数有什么区别?

    我不明白C 中赋值构造函数和复制构造函数之间的区别 是这样的 class A public A cout lt lt A A lt lt endl The copy constructor A a b The assignment cons
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • 获取从属性构造函数内部应用到哪个属性的成员?

    我有一个自定义属性 在自定义属性的构造函数内 我想将属性的属性值设置为属性所应用到的属性的类型 是否有某种方式可以访问该属性所应用到的成员从我的属性类内部 可以从 NET 4 5 using CallerMemberName Somethi
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem

随机推荐

  • 在 Python 中打印表格

    我有一个任务要在 Python 中创建一个 10 x 10 表 并且我在打印函数中使用结尾 t 来防止它创建新行 但是 我需要它在 10 个字符之后开始一个新行 我怎样才能让它做到这一点 这是我的代码 product 0 for x in
  • 在秒差距中,有没有办法防止词素消耗换行符?

    中的所有解析器Text Parsec Token礼貌地使用lexeme吃掉令牌后的空白 对我来说不幸的是 空格包含新行 我想将其用作表达式终止符 有没有办法说服lexeme留下一条新线 不它不是 这是相关代码 From 文本 Parsec
  • 如何在数据框中转换列? [复制]

    这个问题在这里已经有答案了 我正在从 hbase 获取数据并将其转换为数据帧 现在 我在数据框中有一列string数据类型 但我需要将其数据类型转换为Int 尝试了下面的代码 但它给我一个错误 df withColumn order ord
  • 显然 conda 找不到一些非常常见的包:我做错了什么?

    环境 我正在使用conda4 6 7 在配备 High Sierra 的 Mac 上 我有一些遗留的 Python 代码 首先我想运行它 当然 由于这是研究代码 我没想到会找到 花哨的东西 例如测试套件 但我希望至少有一个requireme
  • 项目无法识别 cucumber-picocontainer 依赖性

    我目前正在使用 Cucumber JUnit 和 Selenium 开发 Java 测试框架 我已经参与过类似的项目 但我在这个项目上遇到了问题 我正在尝试创建一个单例的 Context 类 我想使用 cucumber picocontai
  • UINavigationController 横向模式下的后退按钮问题?

    我的iPhone应用程序之前支持纵向模式 现在我想也支持横向模式 除了导航控制器后退按钮之外 我的应用程序中的一切都工作正常 我在导航控制器中使用了表格视图 当我在横向模式下单击后退按钮时 视图会弹出并加载以前的视图 但动画很奇怪 我已经给
  • Angularjs 列表和详细视图

    这是我的基本场景 对于项目列表 摘要视图 我想显示在同一页面上单击的项目的详细信息视图 我拿了这个jsfiddleexample http jsfiddle net pkozlowski opensource 65Cxv 7 并将其改造成这
  • 如何通过自动显式查看类型推断的结果?

    我最近正在研究C 11 14的自动功能 出于教育目的 我想明确显示我的代码的类型推断结果 我尝试了 typeid name 但我发现这种方法有两个问题 输出有时难以理解 例如 NSt3 16vectorIiNS 9allocatorIiEE
  • 如何用JQuery实现FLXHR进行跨域交互

    我正在使用 JQuery FLXHR 从跨浏览器获取数据 下面是示例jquery代码 set up the domain that we re going to call and tell flXHR not to try to parse
  • 创建全天活动失败

    我正在尝试创建一个全天活动 let foobar any subject calendarEvent Title v5 body contentType HTML content calendarEvent calendarEvent De
  • 代码覆盖率和分析之间的区别

    代码代码覆盖率和分析之间有什么区别 这是最好的代码覆盖率开源工具 代码覆盖率是对代码已运行量的评估 这用于查看测试对代码的执行情况 分析用于查看代码各个部分的执行情况 这些工具取决于您使用的语言和平台 我猜你正在使用Java 所以推荐代码覆
  • 什么是 stdole2.tlb

    stdole32 tlb 包含所有基本类型定义 如果我们使用 MIDL 则每个库都必须导入它 但是当我创建 ATL DLL 项目时 lib 文件看起来像这样 import oaidl idl import ocidl idl uuid 4C
  • SOA 服务设计/身份验证

    我对 SOA 相当陌生 因此正在尝试 目前 对我来说最大的问题是身份验证 我目前的想法涉及以下内容 客户端向身份验证 用户服务发送某种身份验证消息 该服务查询数据库 如果找到用户并且密码有效 它将使用会话 ID 进行响应 该 ID 将用于所
  • 在 IIS 中运行发布的网站时出现 NullReferenceException

    我有一个在将其添加到 IIS 之前发布的网站 之后我将发布的网站设置为 IIS 中的默认网站 当我通过表单插入值时 出现错误 对象引用未设置为对象的实例 网站在IIS中运行而不发布时没有问题 使用数据网格插入值时会发生错误 错误信息如下 应
  • mode=remoteOnly 的 ASP.NET customErrors 和 global.asax 处理异常

    我在 Web 配置文件中设置了自定义错误 如下所示
  • 使用正则表达式匹配记录中的名称、对话和动作

    给定如下所示的字符串对话 我需要找到与每个用户对应的句子 text CHRIS Hello how are you PETER Great you PAM He is resting PAM SHOWS THE COUCH PETER IS
  • 我可以生成没有绑定和服务信息的 WSDL 文件吗?

    我遇到一个问题 客户可以使用 net beans 以及在 NET 中打开 SAP WSDL 但不能在 SOAPUI 中打开 当我检查 WSDL 时 我发现服务和绑定标签未定义或不包含此类标签 WSDL 以端口类型信息结束 在 SOAPUI
  • 如何为Python制作一个具有良好图形效果的.exe?

    我有一个 Python 应用程序 我决定创建一个 exe 来执行它 这是我用来执行 exe 的代码 coding cp1252 from distutils core import setup import py2exe sys os sy
  • “workbooks.worksheets.activate”有效,但“.select”无效

    谁能告诉我为什么当我引用特定的工作表时我可以使用 workbooks A worksheets B activate but not workbooks A worksheets B select 您无法选择非活动工作簿中的工作表 您必须首
  • ASP.NET Core 在开发环境中禁用身份验证

    是否可以在 ASP NET Core 应用程序中 禁用 身份验证而不更改其逻辑 我有一个 net 网站 它使用外部身份服务器应用程序进行身份验证 无论如何 我希望能够在开发时模拟身份验证 ASPNETCORE ENVIRONMENT Dev