Asp.net mvc 5 为什么当我单击外部提供者按钮时,我的站点会重定向回登录屏幕?

Asp.net mvc 5 为什么当我单击外部提供者按钮时,我的站点会重定向回登录屏幕?,asp.net-mvc-5,owin,Asp.net Mvc 5,Owin,我正在将一个ASP.NETMVC4站点升级到MVC5,并在此过程中实现新的OWIN身份验证方法 我在一个空白的MVC5项目上复制了Account controller的操作方法 问题是,当我点击一个外部提供者按钮(如谷歌)时,我会再次被重定向回登录页面。第二次单击时,我确实会被带到Google帐户页面,但随后浏览器会被重定向到帐户/外部登录页面 发生了什么事?检查web.config文件中的元素。它可能还在说 <authentication mode="Forms"> 将其更改

我正在将一个ASP.NETMVC4站点升级到MVC5,并在此过程中实现新的OWIN身份验证方法

我在一个空白的MVC5项目上复制了Account controller的操作方法

问题是,当我点击一个外部提供者按钮(如谷歌)时,我会再次被重定向回登录页面。第二次单击时,我确实会被带到Google帐户页面,但随后浏览器会被重定向到帐户/外部登录页面

发生了什么事?

检查web.config文件中的
元素。它可能还在说

<authentication mode="Forms">

将其更改为
可以解决此问题

为了更好地衡量,请从Web服务器模块部分删除FormsAuthentication模块:

<system.webServer>
  <modules>
     <remove name="FormsAuthentication" />
   </modules>
</system.webServer>


问题是FormsAuthentication模块会查找带有401(未经授权)代码的任何响应,并将其更改为登录页面的重定向请求。

我也遇到了同样的问题,Samuel Jack的回答确实帮助了我,但我不得不做一点小小的更改

对我来说,添加

<remove name="FormsAuthentication" /> 

在“处理程序”部分下,没有工作。相反,我不得不在下面的“模块”部分添加它,问题得到了解决

下面是我的web.config的外观

  <system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <remove name="FormsAuthenticationModule" />
      <remove name="RoleManager" />
    </modules>

注意,在我的例子中,已经有一个

<remove name="FormsAuthenticationModule" />

但这无助于解决问题。我不知道它是怎么到那里的,所以我就不理它了


希望这能有所帮助。

我连续一天都有这个问题,但有时我会遇到一些糟糕的日子,我对细节的关注度很低

但我的问题有点尴尬。我的外部登录在几个月内都很好,突然停止工作,我根本没碰那段代码,但是我的网络配置

 <location path="something/somethingelse">
     //other stuff that made it hard to see because is pretty long
   <system.webServer>
      <modules>
         <remove name="FormsAuthenticationModule" />
         <remove name="FormsAuthentication" />
      </modules>
   </system.webServer>
 </location>

//其他让人看不见的东西,因为它很长
幸运的是,我在发布一个我将要写的问题之前发现了这一点,并让我看到了那个位置标签


我不知道为什么一开始工作,后来坏了。我没有更新任何参考资料,几周来我都没有做任何修改。

谢谢你指出这一点。它应该从模块中删除,而不是从处理程序中删除,所以我更新了我的答案。