簡體   English   中英

MVC4的問題和Google的外部登錄

[英]Problems with MVC4 & External Login with Google

我有一個使用SimpleMembership的ASP .NET MVC4應用程序,並允許用戶使用其Google帳戶登錄。

為此,我通過取消注釋OAuthWebSecurity.RegisterGoogleClient();來配置應用程序的OAuthWebSecurity.RegisterGoogleClient();OAuthWebSecurity.RegisterGoogleClient(); 這行將google添加為外部登錄方法。 ASP .NET MVC4 Internet應用程序模板已經附帶的外部登錄方法中,我並沒有做太多改變。

問題:

當我在本地運行它(IIS express)或將其部署到“測試”服務器(IIS 6.1,僅可在Intranet上訪問)時,一切正常。 當我單擊“使用google登錄”按鈕時,我將被發送到google的身份驗證頁面,其網址如下所示:

https://accounts.google.com/ServiceLogin?service=lso&passive=12096...(long url)

las,當我將其部署到“生產”服務器(面向Internet)並嘗試通過Internet進行訪問時,Google身份驗證將停止工作:當我單擊“使用google登錄”時,系統會將我發送到如下網址這個:

http://MY_APPLICATION_NAME.MY_DOMAIN.com/accounts/o8/ud?openid.claimed_id=http%3A%2F%2Fspecs.openid...(long url)

這個網址是錯誤的,不僅因為其中包含我的域(我認為應該是accounts.google.com?),還因為它的其余部分與身份驗證有效時獲得的網址完全不同。

我所知道並嘗試過的:

如果我使用提琴手,當我通過Internet或Intranet訪問該應用程序時,可以看到該應用程序的行為有所不同。

  • 如果我是通過網絡訪問的,則表明我正在向http://MY_APPLICATION_NAME.MY_DOMAIN.com/account/ExternalLogin?returnUrl=發出請求,然后向"Tunnel to www.google.com:443, Tunnel to accounts.google.com:443" 這樣就可以了。
  • 如果我從互聯網訪問它,我看到我正在做一個請求http://MY_APPLICATION_NAME.MY_DOMAIN.com/account/ExternalLogin?returnUrl= ,然后又一個http://MY_APPLICATION_NAME.MY_DOMAIN.com/accounts/o8/ud?openid.claimed_id=http%3A%2F%2Fspecs.openid...(long url) 這顯然給出了404。

我可能錯了,但是我認為此URL是由OAuthWebSecurity.RequestAuthentication(provider, returnUrl) 讓我感到困惑的是,它似乎是在向我的服務器而不是account.google.com請求認證。

到目前為止,我的研究僅給我帶來了帖子/問題/等等。 顯示使用SimpleMembership進行外部身份驗證有多么容易,我可以看到每個人都以幾乎相同的方式進行操作。

結論:

我相信這可能與我必須在web.config或IIS上配置的內容有關。 我確實知道對我的應用程序的請求到達了我的DNS服務器,該服務器進行URL重寫並將請求轉發到我的Web服務器,盡管我不知道這是否與問題有關。

是否有人對可能出什么問題或曾經有過類似問題有任何想法? 任何幫助,將不勝感激。

編輯:

我已經研究過OpenAuthSecurityManager.cs的源代碼,盡管無法調試它,但由於我在IIS上的反向代理設置,該問題可能與RequestAuthentication方法中的HttpContext錯誤有關?

我最終提出了更改IT基礎架構的請求。 由於以前的基礎結構處理請求的方式,OpenAuthSecurityManager.cs可能收到了錯誤的HttpContext實例(請求到達了我們的DNS服務器,並使用UrlRerwrite規則轉發到了網絡內部另一台服務器上的Web服務) 。

現在正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM