gpt4 book ai didi

asp.net - MVC5身份验证中的“Trust relationship between … and the primary domain failed”

转载 作者:行者123 更新时间:2023-12-03 09:23:38 26 4
gpt4 key购买 nike

我有一个ASP .NET MVC5应用程序,使用Windows身份验证在其中是而不是

一切运行良好,直到我尝试在正在开发该应用程序的域之外运行该应用程序并且(无论出于何种原因)得到以下信息:

The trust relationship between this workstation and the primary domain failed.

当我尝试做 User.IsInRole("Admin")时。

我正在使用.NET的 Identity 中的自定义 RoleIdentityStoreRoleStoreIdentity等,并且可以看到正在从(MongoDB)数据库中正确检索到用户和角色数据。

关于此问题有很多问题,但是这些问题来自 使用Windows Auth的人。和模拟在其MVC应用程序中:
  • With windows authentication, The trust relationship between the primary domain and the trusted domain failed, when calling IsInRole
  • How to configure Windows Authentication / Impersonation + IIS 7 + MVC
  • The trust relationship between the primary domain and the trusted domain failed
  • My.User.IsInRole("Role Name") throws a Trust Relationship error on Windows 7

  • 那么,如果我不使用Active Directory并且(据我所知)没有做任何可能依赖于PC域的事情,那为什么我会得到这个 SystemException?我是否缺少某些配置(在 Web.config或IIS Express中)?

    编辑:

    好吧,让它缩小一点...

    我的 User.IsInRole("Admin")行位于 if() View 中的 _Layout.cshtml语句内(即,根据角色知道在导航栏中显示的内容)。

    我现在知道,只有在没有用户通过身份验证并且不在用于开发的域中时,才会出现上述错误。如果在该行上放置断点,则可以看到 User对象是 System.Security.Principal.WindowsIdentity,其基础 IdentitySystem.Security.Principal.WindowsIdentity

    另一方面,如果用户通过了身份验证,则 User对象和ts IdentitySystem.Security.Claims.ClaimsPrincipalSystem.Security.Claims.ClaimsIdentity

    为什么它完全使用Windows身份(未经身份验证),如何禁用它?

    最佳答案

    因此,根据我的编辑,我修改了_Layout.cshtml,以便

    @if(User.IsInRole("Admin"))  {...}

    我有
    @if(User.Identity.IsAuthenticated && User.IsInRole("Admin")) {...}

    这似乎解决了问题。

    我相信问题在于,当没有用户通过身份验证并且尝试检查User.IsInRole时, ASP .NET Identity使用 empty WindowsIdentity ,然后它将尝试针对我没有的Active Directory来检查WindowsIdentity的角色。显然,在尝试检查其角色之前,我应该首先检查用户是否已登录,所以请注意。

    但是,即使上面的更改似乎可以修复我的代码,我也很想了解更多有关此行为的信息:为什么在没有用户通过身份验证时为何使用空的 System.Security.Principal.WindowsIdentity。我会接受任何可以解释这一问题的答案。

    关于asp.net - MVC5身份验证中的“Trust relationship between … and the primary domain failed”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765626/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com