Asp.net mvc 4 VS2019 MVC4网站IIS Express表单身份验证

Asp.net mvc 4 VS2019 MVC4网站IIS Express表单身份验证,asp.net-mvc-4,iis-express,Asp.net Mvc 4,Iis Express,我们正在将MVC4 web应用程序从使用framework 4.0和多个其他NuGet包的VS2013迁移到VS2019。我对代码进行了分支,并为转换映射了一个新位置 我设法把所有的东西都建起来了。该站点使用表单身份验证。但是,当我尝试调试站点时,IPrincipal被设置为WidnowsIdentity(我的域帐户),这是运行IIS Express所需的。这就好像IIS Express也在为登录用户使用开发服务器设置中的windows身份验证一样 我没有使用这些设置更改任何内容,因此匿名身份验

我们正在将MVC4 web应用程序从使用framework 4.0和多个其他NuGet包的VS2013迁移到VS2019。我对代码进行了分支,并为转换映射了一个新位置

我设法把所有的东西都建起来了。该站点使用表单身份验证。但是,当我尝试调试站点时,IPrincipal被设置为WidnowsIdentity(我的域帐户),这是运行IIS Express所需的。这就好像IIS Express也在为登录用户使用开发服务器设置中的windows身份验证一样

我没有使用这些设置更改任何内容,因此匿名身份验证和Windows身份验证都已启用。托管管道模式是集成的。然而,我从未进入登录页面,它完全绕过并将用户设置为我的域

然而,如果我打开VS2013项目,它将一如既往地工作。我知道VS2019为applicationhost.config文件创建了一个.vs文件夹。我把那个文件弄得乱七八糟,但仍然无法运行

更新:

提供更多的信息。我以前没有注意到这一点,但在调试过程中,我注意到出于某种原因,它试图按其应该的方式转到我们的帐户控制器,但它正在寻找登录操作。我们没有一个名为Login的操作,但是我们有一个GET和POST登录

我还检查了web.config文件,以确保它没有以某种方式更改,并且仍然是~/Account/LogOn。我已经在代码中搜索了登录名


我甚至尝试更改表单身份验证的loginUrl属性,但它看起来好像没有读取到该属性。

为可能遇到问题的任何其他人发布原因和修复方法

因此,经过无数次的搜索、失败的尝试和数小时的调试,所有这些都归结为问题,无论出于何种原因,在VS2013中他们并没有表现出丑陋的头脑,而是在VS2019中表现出来

几年前,我们从MVC3迁移到MVC4,甚至在我们迁移到VS2013之前,或者大约在我们迁移的同一时间。根据我最后在这里找到的两篇文章,我找到了我的解决方案

第1期

首先是重定向到错误的登录页面。我们调用了我们的登录,但它被重定向到登录

修复程序正在将以下内容添加到appSettings中:

<add key="loginUrl" value="~/Account/LogOn" />

第二期

我仍然遇到的另一个问题是,当初始点击默认页面时,即使正确重定向到登录页面,仍然将用户设置为WindowsIdentity

修复程序再次将以下行添加到appSettings:

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>