MVC5 身份验证中“...与主域之间的信任关系失败”

2024-05-27

我有一个 ASP .NET MVC5 应用程序not使用 Windows 身份验证。

一切都工作正常,直到我尝试在正在开发的域之外运行应用程序并且(无论出于何种原因)得到:

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

当我想做的时候User.IsInRole("Admin").

我正在使用自定义Identity, Role, IdentityStore, RoleStore等来自 .NET 的Identity http://www.asp.net/identity我可以看到正在从(MongoDB)数据库正确检索用户和角色数据。

关于这个问题有很多问题,但它们来自那些want to使用 Windows 身份验证。以及 MVC 应用程序中的模拟:

  • 使用 Windows 身份验证,调用 IsInRole 时,主域和受信任域之间的信任关系失败 https://stackoverflow.com/questions/2625509/with-windows-authentication-the-trust-relationship-between-the-primary-domain-a

  • 如何配置 Windows 身份验证/模拟 + IIS 7 + MVC https://stackoverflow.com/questions/7665710/how-to-configure-windows-authentication-impersonation-iis-7-mvc

  • 主域与受信任域之间的信任关系失败 https://serverfault.com/questions/497586/the-trust-relationship-between-the-primary-domain-and-the-trusted-domain-failed

  • My.User.IsInRole("角色名称") 在 Windows 7 上引发信任关系错误 http://social.msdn.microsoft.com/Forums/en-US/75f7964b-c90f-487d-ae0c-82678dbe0c6e/myuserisinrolerole-name-throws-a-trust-relationship-error-on-windows-7?forum=vblanguage

那么为什么我会得到这个SystemException如果我没有使用 Active Directory 并且(据我所知)没有执行任何可能依赖于 PC 域的操作?我是否缺少一些配置(在我的Web.config或 IIS Express)?

EDIT:

好吧,所以缩小范围一点......

My User.IsInRole("Admin")线在一个里面if()我的声明_Layout.cshtml查看(即根据角色了解导航栏中显示的内容)。

我现在知道,只有在没有用户经过身份验证并且我不在用于开发的域中时,我才会收到上述错误。如果我在该行上放置一个断点,我可以看到User对象是一个System.Security.Principal.WindowsIdentity及其底层Identity is System.Security.Principal.WindowsIdentity.

另一方面,如果用户已通过身份验证,则User对象和 tsIdentity are System.Security.Claims.ClaimsPrincipal and System.Security.Claims.ClaimsIdentity.

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


所以,根据我的编辑,我修改了我的_Layout.cshtml这样而不是有

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

I have

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

这似乎解决了问题。

我相信问题在于ASP .NET Identity使用一个empty WindowsIdentity https://stackoverflow.com/questions/19091157/how-do-you-login-authenticate-a-user-with-asp-net-mvc5-rtm-bits-using-aspnet-ide?rq=1当没有用户经过身份验证并且我尝试检查 User.IsInRole 时,它​​将尝试根据我没有的 Active Directory 检查 WindowsIdentity 的角色。显然,我应该首先检查用户是否已登录,然后再尝试检查其角色,所以认错.

但是,即使上面的更改似乎修复了我的代码,我还是很有兴趣了解有关此行为的更多信息:为什么它使用空的System.Security.Principal.WindowsIdentity当没有用户经过身份验证时。我会接受任何解释这一点的答案。

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

MVC5 身份验证中“...与主域之间的信任关系失败” 的相关文章

  • 如何找到 IIS 在负载/性能测试期间模拟的平均并发用户数?

    我正在使用 JMeter 进行负载测试 我正在练习通过简单地增加我的分布式 JMeter 测试用例中的线程数并启动测试来查找我们的网络服务器可以处理的最大并发线程 用户 数量 然后 我突然意识到 虽然 MAX 数字可能有用 但REAL我的网
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso
  • 传入字典的模型项是类型

    我有一个我理解的错误 但无法找出以正确的方式解决的方法 我有一个 MasterPage 我从该 MasterPage 中调用 标签是一个强类型视图 如下所示 我像这样返回 PartialView return View Tags resul
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • MVC 项目中的 .Rdlc 报告 - 托管调试助手“PInvokeStackImbalance”

    我即将完成并运行我的上一份报告 我在其他报告中没有遇到过这个问题 我正在尝试根据数据库记录创建报告 当我通过 LocalReport 创建报告并为报告创建参数时 收到错误消息 托管调试助手 PInvokeStackImbalance 调用
  • Page_ClientValidate 未定义

    我正在使用 ASP NET 2 0 并使用 IE8 作为我的默认浏览器 但无论我尝试多少次 Page ClientValidate一直给我这个错误 它没有定义 我怎么解决这个问题 请帮忙 所以 我想你的页面中可能没有任何RequiredVa
  • (VS2017)运行所选代码生成器时出错:“序列不包含元素”

    我正在跑过微软的教程之一 https learn microsoft com en us aspnet core tutorials first mvc app 关于 MVC 开发 我在尝试创建各种元素时遇到错误 视图 控制器等 我收到的错
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 从备用位置获取实体框架连接字符串?

    如何从自定义配置文件而不是 web config 检索 Entity Framework 4 连接字符串 编辑 删除默认构造函数生成的代码并在分部类中重新创建它以使用拉入的连接字符串是否合理 我真的很想避免使用包括连接字符串在内的重载方法更
  • ASP.net C#,采用不同参数类型的同名方法[重复]

    这个问题在这里已经有答案了 可能的重复 可以在 ASP Net MVC 中重载控制器方法吗 https stackoverflow com questions 436866 can you overload controller metho
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri
  • 无法将 MVC 4 部署到服务器

    我的 Web 应用程序只是一个用 VS 2010 MVC 4 制作的简单 Web 应用程序 没有任何外部代码 它只是 VS 2010 的默认应用程序 我有 Plesk 的豪华 Windows 托管 我从未更改过帐户中的任何功能 我将所有文件
  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • 表单身份验证 MVC4

    我正在尝试使用 MVC4 网站进行简单的表单身份验证设置 在App start FilterConfig cs中 public static void RegisterGlobalFilters GlobalFilterCollection
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知

随机推荐