如何在 Blazor 中将 AuthorizeView 标记与自定义身份验证逻辑结合使用

2024-01-14

我在 Blazor 服务器应用程序中有一个自定义身份验证系统,具有自定义数据库和一些逻辑。

我希望受益于 razor 中内置的 AuthorizeView 标签。但我不知道如何在没有 AspNetCore.Identity 的情况下使用它。

现在我有一个全局属性 bool IsAuthorized 来检查用户是否登录。 首先,我想也许我可以将 IsAuthorized 属性绑定到 AuthorizeView 标签 Authorize 和 NotAuthorized。

我通读了 AuthorizeView 参考,但找不到哪个属性控制它的状态。

是否可以在自定义身份验证逻辑中使用 AuthorizeView,而无需内置“身份”?


您需要创建自己的 AuthenticationStateProvider 并重写 GetAuthenticationStateAsync 方法。我不知道您的身份验证背后的逻辑,但也许您可以从该方法中的身份验证逻辑创建 ClaimsIdentity 和 ClaimsPrincipal 并设置身份验证状态。为了更好地理解它是如何工作的,这里有一个创建您自己的 AuthenticationStateProvider 并从 wasm 中的令牌获取 autstate 的示例:

https://chrissainty.com/secure-your-blazor-apps-authentication-with-clientside-blazor-using-webapi-aspnet-core-identity/ https://chrissainty.com/securing-your-blazor-apps-authentication-with-clientside-blazor-using-webapi-aspnet-core-identity/

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

如何在 Blazor 中将 AuthorizeView 标记与自定义身份验证逻辑结合使用 的相关文章

随机推荐

  • Tesseract OCR:解析表格单元格

    我正在使用 cmd 中的 Tesseract OCR v4 0 0 alpha 从如下所示的表格的 png 中提取文本 我希望 Tesseract OCR 能够解析一个单元格中的内容 然后再转到下一个单元格 我不想继续 行 中的下一个单词
  • 关于 Google Directions API 中的 escape=tollroads 的问题

    我有一些关于 Google Directions API 的问题 Google Directions API 中的 escape tollroads 是否完全避开部分收费公路 或者它是否足够聪明 知道有些路线可以在部分收费公路上行驶 但实际
  • Android Studio 运行应用程序太慢

    当我运行我的应用程序时 大约需要 10 分钟才能在我的手机上显示 而且每次更改代码也需要 10 分钟 我应该怎么办 我在用Android Studio 2 0 在 android studio 中转到 文件 gt 设置 gt 构建 执行 部
  • 如果攻击者知道盐,那么它们对安全性是否毫无用处?

    假设我有一个这样设置的用户表 CREATE TABLE users id INTEGER PRIMARY KEY name TEXT hashed password TEXT salt TEXT 创建用户时 会生成随机生成的盐并将其与类似结
  • 如何在response.redirect中将列表作为参数传递

    问题1 我有两个列表 我想在下一页中访问它们 我将重定向它们 目前的结果 当我传递结果时 它在 url 中显示列表数据类型 ex System Collections Generic List1 IDataEntities ISearchR
  • Bash 命令查看 dir 中是否有文件 - 测试目录是否为空[重复]

    这个问题在这里已经有答案了 我有以下 bash 脚本 if ls Users david Desktop empty gt dev null then echo yes files else echo no files fi 如果目录中有一
  • 检测整数内的单个一位流

    我必须检查一个号码是否满足以下条件 在二进制中 所有一位必须是连续的 该数字必须至少设置一位 连续的一位可能从 MSB 开始或在 LSB 结束 因此如果该数字由单个一位流后跟零位流组成 则完全有效 反之亦然 我编写了一个代码来检查现实问题的
  • 身份视图在哪里?

    当我在 NET Core 2 1中创建新项目时 我找不到 Identity Account Manage后面的视图 它在哪里 现在如何更改页面样式 这些视图现在是预编译库的一部分 Microsoft AspNetCore Identity
  • PHP SoapClient 类型映射的行为不同

    我有一个 Web 服务函数 它将一组项目返回给 PHP 客户端 根据项目的数量 PHP 返回类型有所不同 如果函数返回一项 则 PHP 类型为stdClass如果函数返回多个项目 则 PHP 类型为array 无论哪种情况都应该是array
  • 更改 ng-repeat 内的角度 ui-view

    我在单个控制器中使用多个命名的 ui 视图 当使用以下代码在 html 文件中命名 ui view 时 一切都按预期工作 div class box div div div div div div div div div div div 但
  • 将 CUDA 与 Visual Studio 2017 结合使用

    我正在尝试安装 CUDA 但收到一条消息 未找到支持的 Visual Studio 版本 我认为这是因为我使用的是 Visual Studio 2017 社区 而 CUDA 目前仅支持 Visual Studio 2015 不幸的是 微软不
  • 使用 Velocity 模板语言的类型化 React 函数组件模板

    我正在使用 Webstorm 作为我的 IDE 它允许我突出显示一些 JSX 并将组件提取为功能组件 支持此功能的代码位于我不熟悉的 VTL 中 当我提取这样的组件时
  • flutter中的new_version包返回RangeError(index):无效值:有效值范围为空:1

    我在 flutter 中使用 new vesrion 0 3 1 包来显示警报对话框 如果 flutter 应用程序商店中有新版本可用 则显示更新应用程序 但我收到以下书面异常 ERROR flutter lib ui ui dart st
  • 无法让 Tensorflow 在 macOS M1 Pro 芯片上运行

    我一直在尝试进入 ML 领域 并且想学习相关课程 但它需要 Tensorflow 而且我一直在尝试让它在我的系统上运行 我有 2021 款 14 16GB Macbook Pro 配备 M1 Pro 芯片 并且运行的是 Ventura 13
  • 检测到的 JDK 版本:1.6.0-24 不在允许范围 1.7 内

    当我运行命令时 mvn clean package 我收到错误 Detected JDK Version 1 6 0 24 is not in the allowed range 1 7 如何修复上述错误 我尝试检查安装的jdk版本并得到了
  • django模型管理添加表单卡住了

    考虑一下这个 admin register Personal site admin site class PersonalAdmin admin ModelAdmin form ChangePersonalForm add form Add
  • 正则表达式匹配额外的空组

    我是正则表达式领域的新手 我下面发布的所有内容都是我的代码中的简化示例 我有一根绳子 比方说test 1 some 2 foo bar 4 我想替换为title test 1 title some 2 title foo title bar
  • 如何在 MVC 4 中不指定表单区域

    我有一个 MVC 应用程序 其中配置了区域 注销链接出现在布局页面中 因此它会显示在每个页面上 当我单击注销时 它总是将其附加到它所在的区域中 我只想让它转到帐户 注销 无区域 我尝试了以下方法 但没有成功 有什么建议吗 using Htm
  • WPF richTextBox问题

    如果一行文本换行到另一行 如何以编程方式确定字符串中的断点 示例 输入字符串 这是对文本换行行的测试 Based on the width of the richTextBox it could display This is a test
  • 如何在 Blazor 中将 AuthorizeView 标记与自定义身份验证逻辑结合使用

    我在 Blazor 服务器应用程序中有一个自定义身份验证系统 具有自定义数据库和一些逻辑 我希望受益于 razor 中内置的 AuthorizeView 标签 但我不知道如何在没有 AspNetCore Identity 的情况下使用它 现