2012-03-07 39 views
0

我們有一個由ASP.NET中的第三方編寫的Web應用程序,我們無法訪問源代碼,但可以訪問運行的服務器。我們現在已經爲PHP開發了一個新的公共網站,並且需要在主頁上添加一個登錄名,以允許用戶訪問ASP> NET應用程序。任何想法可以實現這個最好的方式?我們可以寫一個自定義身份驗證處理程序來執行此操作ASP.NET自定義身份驗證處理程序

+0

我們只需要用戶能夠直接從(PHP)網站登錄,但因爲它位於不同的服務器上,所以無法正常工作。 PHP開發人員試圖將用戶詳細信息直接發佈到ASP.NET應用程序的登錄表單中。 – 2012-03-07 13:53:17

+0

所以你試圖通過將詳細信息發佈到登錄表單來從PHP應用程序到ASP.NET的身份驗證? – SeanCocteau 2012-03-07 14:42:18

+0

是的,就是這麼簡單 – 2012-03-07 14:48:25

回答

0

因此,通過向ASP.NET應用程序發出POST請求從PHP進行身份驗證?沒有代碼訪問權限? AFAIK,您將被限制爲使用HTTP方法而不是其他任何方式來代理請求。

關鍵是進行POST操作並使用ASP.NET的響應並將其傳遞給客戶端。我試過這個before,但是這是使用ASP Classic頁面,請求是從一個winforms應用程序生成的。校長相當容易,通過用戶名,密碼和相關的詳細信息POST;然後寫出認證cookie。 ASP.NET窗體身份驗證將至少生成一個默認名稱爲「.ASPXAUTH」的cookie,您還可以根據網站處理會話的方式找到會話cookie('ASP.NET_SessionId')。監控事物的一個好方法是使用Fiddler來查看傳入和返回的內容。

但是,我可以設想的問題是,您的PHP頁面將爲託管您的PHP代碼的域寫出cookie,如果這兩個站點不共存於同一主域中,那麼您可能會成功進行身份驗證, ASP.NET網站將無法讀取從其他域創建的Cookie。您可能能夠使用'enableCrossAppRedirects'在相同的子域中運行php和ASP.NET服務器,但這是我不太熟悉的東西。

+0

謝謝,我會嘗試提琴手,不幸的是服務器在不同的域名 – 2012-03-07 17:17:23

相關問題