我们正在将使用框架4.0和其他多个NuGet软件包的VS2013的MVC4 Web应用程序移至VS2019。我分支了代码并映射了新的转换位置。
我设法建立了一切。该站点使用表单身份验证。但是,当我尝试调试站点时,会将IPrincipal设置为WidnowsIdentity(我的域帐户),这是运行IIS Express所必需的。就像IIS Express也在使用Development Server设置中针对登录用户的Windows身份验证一样。
我没有使用这些设置进行任何更改,因此匿名身份验证和Windows身份验证均已启用。托管管道模式已集成。但是,我从未进入过登录页面,它完全绕过了用户并将其设置为我的域
但是,如果我打开项目VS2013项目,它将照常运行。我知道VS2019为applicationhost.config文件创建一个.vs文件夹。我已经弄乱了那个文件,但仍然无法运行它。
更新:
提供更多信息。我以前没有注意到这一点,但是在调试时,我注意到由于某种原因,它试图按原样转到我们的帐户控制器,但它正在寻找登录操作。我们没有名为Login的操作,但是我们有GET和POST LogOn。
我还检查了web.config文件,以确保它没有以某种方式更改,并且仍然是〜/ Account / LogOn。我已经在代码中搜索了称为Login的任何内容。
我什至尝试更改用于表单身份验证的loginUrl属性,但似乎并没有读取它。
答案 0 :(得分:0)
发布原因并为可能会导致问题的其他任何原因解决。
因此,经过无数次搜索,失败的尝试和数小时的调试,所有这些都归结为问题,无论出于何种原因,它们在VS2013中并没有丑陋的头脑,而在VS2019中。
几年前,我们从MVC3迁移到MVC4,甚至在我们迁移到VS2013之前,或者大约在同一时间。根据我在这里终于找到的两个帖子,我找到了解决方案。
问题1
首先与重定向到错误的登录页面有关。我们称呼我们的LogOn,但是它已被重定向到Login。
此修复程序将以下内容添加到appSettings中:
<add key="loginUrl" value="~/Account/LogOn" />
以下是该帖子的链接,其中对Post
进行了详细说明。问题2
我仍然遇到的另一个问题是,当最初点击默认页面时,即使正确地重定向到了“登录”页面,仍将用户设置为WindowsIdentity
再次修复是将以下行添加到appSettings中:
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
这是该帖子的链接,其中对Post
进行了详细说明。