【问题标题】:VS2019 MVC4 WebSite IIS Express Forms AuthenticationVS2019 MVC4 网站 IIS Express 表单身份验证
【发布时间】:2019-09-06 18:36:17
【问题描述】:

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

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

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

但是,如果我打开项目 VS2013 项目,它会像往常一样工作。我知道 VS2019 为 applicationhost.config 文件创建了一个 .vs 文件夹。我弄乱了那个文件,但我仍然无法让它运行。

更新:

提供更多信息。我以前没有注意到这一点,但是在调试时我注意到由于某种原因它正试图进入我们的帐户控制器,但它正在寻找登录操作。我们没有名为 Login 的操作,但我们有 GET 和 POST LogOn。

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

我什至尝试更改表单身份验证的 loginUrl 属性,但它似乎没有读取它。

【问题讨论】:

    标签: asp.net-mvc-4 iis-express


    【解决方案1】:

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

    因此,经过无数次搜索、失败的尝试和数小时的调试,这一切都归结为问题,无论出于何种原因,它们并没有在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多