2012-03-14 61 views
1

我們在帶有Apache的iSeries上使用PHP運行我們的Intranet站點。默認情況下,此框中託管的PHP不能自動獲取登錄的Windows用戶的用戶名。php調用asp.net頁面獲取值

隨着從Windows服務器託管asp.net頁面,我們可以自動獲取用戶名。

從PHP頁面,把它的login.php,我想(通過任何方法),打電話或將用戶重定向到託管的不同服務器上的asp.net網頁。這個asp.net頁面會傳回一個值(用戶名)。

我知道從.NET檢索用戶名的語法。但是,我不想做的是將URL重定向回login.php,並使用查詢字符串示例?username = bob ...,因爲它對用戶是直接可見的,並且有許多明顯的缺陷。

我如何去實現呢?也許使用Ajax?或者某種.net代碼例如 Request.LastUrlVisited.ReturnValue(「bob」),它不會顯示在URL欄中?

相信asp.net頁面需要特別是網頁,作爲一個asp.net web服務不能從Windows retieve的用戶名。

感謝,


更新

通過的意見,我已經認識到,一個asp.net web服務實際上可以獲取用戶名..它並不需要是一個網頁。所以這打開了一堆從php調用webservice服務的可能性。

+0

什麼樣的.NET應用程序的是什麼呢?網頁或Web服務? MVC或Web窗體? – Liam 2012-03-14 13:25:41

+0

PHP頁面是一個網頁。 asp.net頁面可能也是一個網頁,因爲我不相信web服務可以檢索Windows用戶名。我會用這個細節更新我的帖子。 – adam 2012-03-14 13:26:55

+0

而不是試圖從其他應用程序獲取用戶名爲什麼不嘗試用PHP?檢查這個帖子,如果這可以幫助你 - http://stackoverflow.com/questions/168610/can-you-get-a-windows-ad-username-in-php – 2012-03-14 13:28:55

回答

2

好,我假設你可以將你的.Net站點轉換爲一個Web服務。這將是這個樣子:

[WebMethod] 
     public string GetUserName() 
     { 

     } 

然後,您可以調用這個Web服務形式的JQuery:

$.ajax({ 
    type: "POST", 
    url: "blah.asmx/GetUserName", 
    data: "{}", 
    dataType: "text", 
    success: function(username) { 
     //do stuff 
    } 
    }); 

這裏有一個更好的解釋,一個站點:

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

編輯

我會加密的用戶名過於

2

確定爲什麼不創建一個asp.net web服務,做一個JSON/Web服務調用asp.net web服務,並獲取用戶名和您可以檢查這一點 - get username from Webservice

代碼:

Context.Request.ServerVariables["LOGON_USER"] 
+0

這是您的登錄用戶問題的答案! – Liam 2012-03-14 13:48:29