首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor路由:如何防止通过URL直接访问组件

Blazor路由:如何防止通过URL直接访问组件
EN

Stack Overflow用户
提问于 2021-07-30 09:52:20
回答 2查看 174关注 0票数 0

我有一个基于标准模板的blazor wasm应用程序。在我的导航中,我有几个组件。由于应用程序的内容,我希望阻止对组件的直接访问。

例如,通过使用如下链接来阻止对组件"myComponent“的直接访问:https://www.example.com/myComponent

这是必要的,因为用户必须在应用程序中遵循严格的流程。

一旦我从一个组件中删除了@page指令,就无法通过找到它。导航也不再起作用了。

此外:如何从url中隐藏组件名称?

期待一些提示!

EN

回答 2

Stack Overflow用户

发布于 2021-07-30 10:00:39

禁止使用如下链接直接访问组件"myComponent“:https://www.example.com/myComponent

您可以通过而不是添加@page "myComponent"来完成此操作

你想要的已经是默认行为了。

如何从url中隐藏组件名称?

当它是一个页面时,你需要一些东西。但是你可以选择任何你想要的名字。

也许你可以用页面和组件之间的区别来更新你的问题。告诉我们为什么你不想要URL中的哪些信息。

页面是具有一个或多个路由属性(@page "<url-patern>")的组件

这是必要的,因为用户必须在应用程序中遵循严格的流程。

您可以构建“向导”:维护“步骤”并基于该值显示特定组件的主页。使用EventCallback前进或后退。

票数 1
EN

Stack Overflow用户

发布于 2022-01-12 05:25:41

您可以使用NavigationManager将用户重定向到其他页面

示例:

代码语言:javascript
复制
@inject NavigationManager NavigationManager
 
@code{
    ....
    protected async override void OnInitialized(){  
         if(!isLogin) {
           NavigationManager.NavigateTo($"/login");
         }
    }
}

你也可以在渲染组件之前检查需求

示例

代码语言:javascript
复制
@if (isLogin)
{
    <myComponent/>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68588955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档