Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blazor 隐藏组件,直到它';s的身份验证已完成_Blazor_Blazor Server Side - Fatal编程技术网

Blazor 隐藏组件,直到它';s的身份验证已完成

Blazor 隐藏组件,直到它';s的身份验证已完成,blazor,blazor-server-side,Blazor,Blazor Server Side,在Blazor服务器应用程序中,我们通过在表中存储用户详细信息来使用简单的SQL Server数据库身份验证。申请的第一个途径是“https://localhost:44349/login“ 我们提供了邮件地址和密码作为凭证,它将导航到“https://localhost:44349/valuation“ 在那之前一切都好。我们在会话中存储用户详细信息 await sessionStorage.SetItemAsync("email", result.

在Blazor服务器应用程序中,我们通过在表中存储用户详细信息来使用简单的SQL Server数据库身份验证。申请的第一个途径是“https://localhost:44349/login“

我们提供了邮件地址和密码作为凭证,它将导航到“https://localhost:44349/valuation“

在那之前一切都好。我们在会话中存储用户详细信息

            await sessionStorage.SetItemAsync("email", result.Email);
            await sessionStorage.SetItemAsync("role", result.TipoUtilizador);
            await sessionStorage.SetItemAsync("Name", result.Nome);
            UriHelper.NavigateTo("valuation");
如果我们打开一个新选项卡,并直接复制“https://localhost:44349/valuation“,有一个问题需要解决

将链接复制到新选项卡“https://localhost:44349/valuation" 我们在“OnInitializedAsync”meyhod中检查会话存储值 现在,并没有匹配的sessionstorage值,它将导航回登录页面

但问题是,我们可以在UI元素导航到登录页面之前看到它

        var email = await sessionStorage.GetItemAsync<string>("email");
        if (string.IsNullOrEmpty(email))
        {
            var returnUrl = Navigation.ToBaseRelativePath(Navigation.Uri);
            var destination = string.IsNullOrWhiteSpace(returnUrl) ? "/login" : $"/login?returnUrl={returnUrl}";
            Navigation.NavigateTo(destination, true);
        }
var email=wait sessionStorage.GetItemAsync(“电子邮件”);
if(string.IsNullOrEmpty(电子邮件))
{
var returnUrl=Navigation.ToBaseRelativePath(Navigation.Uri);
var destination=string.IsNullOrWhiteSpace(returnUrl)?“/login”:$“/login?returnUrl={returnUrl}”;
Navigation.NavigateTo(目的地,true);
}

此h1标记来自估价组件,它在导航到登录页面之前显示。(在实际情况中,我们有很多HTML控件,如按钮、选择等,我们希望隐藏这些控件)

我检查了blazor文档,发现OnInitializedAsync是在组件包含在渲染树中并准备接受数据之后调用的


请帮助我解决此简单身份验证的问题。

在用户通过
元素身份验证之前,包装您不希望看到的元素