Asp.net mvc 5 为什么当我单击外部提供者按钮时,我的站点会重定向回登录屏幕?
我正在将一个ASP.NETMVC4站点升级到MVC5,并在此过程中实现新的OWIN身份验证方法 我在一个空白的MVC5项目上复制了Account controller的操作方法 问题是,当我点击一个外部提供者按钮(如谷歌)时,我会再次被重定向回登录页面。第二次单击时,我确实会被带到Google帐户页面,但随后浏览器会被重定向到帐户/外部登录页面 发生了什么事?检查web.config文件中的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"> 将其更改
元素。它可能还在说
<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>
//其他让人看不见的东西,因为它很长
幸运的是,我在发布一个我将要写的问题之前发现了这一点,并让我看到了那个位置标签
我不知道为什么它一开始工作,后来坏了。我没有更新任何参考资料,几周来我都没有做任何修改。谢谢你指出这一点。它应该从模块中删除,而不是从处理程序中删除,所以我更新了我的答案。