第一次外部登录尝试重定向回登录操作,第二次登录操作我在我的ASP.NetMVC5/在WebApi2项目中使用OWIN的外部身份验证提供程序,我遇到了一个奇怪的问题。登录工作流程就像在SO上一样。用户单击登录页面,选择提供商并登录。我的问题是第一次单击提供商会重定向回同一登录页面:http://localhost:57291/Account/Login?ReturnUrl=%2fAccount%2fExternalLogin如果ExternalLogin操作缺少AllowAnonymous属性,这将有意义。当用户第二次点击时一切正常。我也尝试过使用不同的浏览器,问题在Chrome、IE11和Firefox中是一致的。Login.cshtml:@using(Html.BeginForm("ExternalLogin","Account",new{ReturnUrl=ViewBag.ReturnUrl})){@Strings.ExternalAuthenticationProvidersDescription@foreach(varpinModel.ExternalAuthenticationProviders){@p.Caption}}AccountController.cspublicclassAccountController:Controller{...[AllowAnonymous][HttpPost]publicActionResultExternalLogin(stringprovider,stringreturnUrl){returnnewChallengeResult(provider,Url.Action("ExternalLoginCallback","Account",new{loginProvider=提供者,ReturnUrl=returnUrl}));}...}ChallengeResult.cs:publicclassChallengeResult:HttpUnauthorizedResult{publicChallengeResult(stringprovider,stringredirectUrl){LoginProvider=provider;RedirectUrl=redirectUrl;}publicstringLoginProvider{get;放;}publicstringRedirectUrl{get;放;}publicoverridevoidExecuteResult(ControllerContextcontext){context.HttpContext.GetOwinContext().Authentication。挑战(新的AuthenticationProperties{RedirectUri=RedirectUrl},LoginProvider);}}FilterConfig.cspublicclassFilterConfig{publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters){filters.Add(newHandleErrorecAttributes());//使所有apierfilters.Add(newAuthorizeAttribute());事实证明,我的项目最初是作为MVC4应用程序开始的,它在web.config中导致了这个问题:我认为OWIN和Forms身份验证同时处于活动状态我有同样的问题,它发生在我将ASPNet.Web.Pages.Web.Data3.1.1nuget更新到任何更高版本。从3.1.1开始,它有效!我在这里找到了解决方案。添加表单身份验证后,我将被重定向到登录页面。所以删除这段代码有帮助,但我还必须添加这一行希望这对某人有帮助。以上是C#学习教程:第一次外部登录尝试重定向回登录操作,第二次登录操作共享所有内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多加关注~本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: