ServerAuthenticationStateProvider 报告 Win32Exception: 主域与受信任域之间的信任关系失败

问题描述 投票:0回答:1

我有一个只有一页的 blazor 服务器应用程序

索引.剃刀

@page "/"

<AuthorizeView Roles="sample_role">
    You see this because you have the sample_role
</AuthorizeView>

<p>Everyone sees this</p>

由于

sample_role
不存在于任何默认 Active Directory 中,因此我编写了一个自定义身份验证提供程序来根据现有用户的数据库注入该角色。

public class CustomAuth : ServerAutheticationProvider
{
    public override async Task<AuthenticationState> GetAuthenticationStateAsync()
    {
        var state = await base.GetAuthenticationStateAsync();

        var currentUserId = state.User.Identity.Name;     
        // now I fetch permissions for this user from a database

        bool userHasRole = Database.DoesRoleExistFor(currentUserId);

        if(userHasRole) {
           var sample_role = new Claim(ClaimTypes.Role, "sample_role");
           var identity = new ClaimsIdentity(new Claim[] { sample_role });
           state.User.AddIdentity(identity);

          
           NotifyAuthenticationStateChanged(Task.From(new AutheticationState(state.User)));
        }
        return state;
    }
}

我将此类配置为默认的

AuthenticationStateProvider
Startup.cs

services.AddScoped<AuthenticationStateProvider, CustomAuth>();

以上所有内容都适用于我的开发计算机,其中我的计算机已加入域。

currentUserId
的值类似于
DOMAIN\USERNAME

此代码也适用于我的个人计算机,该计算机不属于任何域。在这种情况下,

currentUserId
的值为
COMPUTERNAME\USERNAME

但是,当我将代码移动到生产环境并使用不同的域名时,出现异常:

Win32Exception:主域和受信任域之间的信任关系失败。

当我改变线路时:

<AuthorizeView Roles="sample_role">

<AuthorizeView>

代码有效,但我无法决定谁可以看到什么。

如何解决这个问题?

c# authentication blazor
1个回答
0
投票

我现在正在努力解决类似的错误......

what did you see??

© www.soinside.com 2019 - 2024. All rights reserved.