2014-02-17 39 views
0

我創建了一個MVC 5應用程序(在使用Facebook和Google OAuth2創建ASP.NET MVC 5應用程序和OpenID登錄教程之後),並取消註釋行:ASP.Net Identity MVC 5登錄Google只能在IIS Express下運行

app.UseGoogleAuthentication(); 

一切工作正常。我可以使用Google登錄。然後,我更改項目屬性以在本地IIS服務器(而不是默認的IIS Express)下託管應用程序。 Google登錄不再有效。該行:

var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 

在ExternalLoginCallback中總是返回null,而在IIS Express下填充loginInfo。這意味着瀏覽器剛剛跳回到登錄頁面。我在Windows 8.1上運行。

我看到其他人有空例外的問題,我沒有得到任何。我已重新啓動IIS。我重新啓動了我的機器,但仍得到相同的結果。

+0

什麼身份,你運行你的工作進程作爲? –

回答

2

我剛纔設法解決這個問題的一個項目我工作的詳細on my blog。 的解決方案似乎是可以關閉會話狀態

<system.web> 
    <sessionState mode="Off"/> 
</system.web> 

或以確保在執行外部登錄,然後用戶在他們的會話的值,

[AllowAnonymous] 
public ActionResult Login(string returnUrl) 
{ 
    //Ensure Session has at least one value 
    Session["EnableExternalAuth"] = true; 

    return View(); 
} 

有一個Owin cookie的問題/錯誤這可能是根本原因

及以下StackOverflow的問題也有關係:

+0

奇妙的是,虛擬會話值有效。令人驚訝的是,它仍然是模板中的一個錯誤,但Tomas Dolezal非常讚賞它的工作。 –

0

查看Technovert article,他們在討論中向web.config文件添加位置權限子部分。

這解決了一些問題,反正