ClaimsPrincipal.Current Visual Studio 2017不同的行为

时间:2017-08-18 09:12:17

标签: c# asp.net-mvc visual-studio asp.net-mvc-5 visual-studio-2017

我正在2017年运行VS2012 MVC 5项目。除了那之外,一切似乎都很好 ClaimsPrincipal.Current不会返回相同的内容!!

完全相同的代码在VS2012,开发和生产服务器上完美运行。 虽然从VS2017 ClaimsPrincipal.Current运行项目时表现不同。

做了一些研究我找到了这篇文章 http://davidpine.net/blog/principal-architecture-changes/

声明.NET Core ClaimsPrincipal.Current的行为应该不同。

在我的情况下,我在两个IDE(4.0.30319.42000)中运行完全相同的.NET版本并使用Environment.Version进行验证。

同时按ClaimsPrincipal.Current上的F12导航到完全相同的mscorlib.dll文件。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

找到造成这种情况的原因!

WebMatrix.Data.dll
WebMatrix.WebData.dll

当这些文件存在于bin文件夹中时,会导致此行为。 此外,它们会覆盖RazorVersion并导致开发服务器抛出不匹配的程序集引用异常。

在我的项目中,我引用了 WebMatrix.WebData版本2.0.0.0

由于某些原因,Visual Studio 2012忽略了该引用,并且它没有将WebMatrix.dll发布到bin文件夹,因此一切正常。

Visual Studio 2017将这些dll发布到bin文件夹中,这导致了这种可能超越内置简单成员资格提供程序实现的冲突。

删除对 WebMatrix 的引用修复了此问题。