0

我正在開發ASP.Net MVC 2應用程序作爲SalesForce.com中的組合應用程序。對於那些不熟悉SalesForce.com的人來說,它是互聯網上的CRM平臺。它只是在單獨的選項卡中的iframe內部顯示的組合應用程序。 因此,當用戶登錄到salesforce.com時,用戶會看到一堆選項卡。當用戶點擊我的應用程序的選項卡時,我的應用程序可用。然後,SalesForce.com將URL傳遞給我的應用程序salesforce的會話ID,我可以使用該ID訪問salesforce數據,而無需用戶登錄。 我可能已經失去了很多用戶,他們只會說:「嘿,這是salesforce。 com具體問題問他們「。 那麼這不是銷售隊伍的具體情況,我認爲。ASP.Net MVC 2身份驗證(登錄)最佳實踐

好進行,人們建議,ASP.Net MVC 2的認證應該在用戶的客戶機上的瀏覽器來保留。所以基本上我堅持用戶的ID在一個cookie,然後如果我需要關於用戶的信息我只是檢索。 在我的情況下,我看到兩個問題: 1.我經常使用客戶端的信息,因此我不想每次都查詢salesforce.com。在cookie中序列化和加密用戶信息是一個好主意嗎?另外,用戶信息是一個具有兩個對象屬性的對象:一個包含一組原語和枚舉來描述salesforce用戶,另一個包含一系列原語和枚舉來描述我的本地應用程序中的用戶。 2.我的應用程序從一個iframe中運行,據我所知,在用戶的機器上存儲cookie會有問題。我不確定這是否屬實。另外,當用戶註銷salesforce時,我的cookie應該從用戶的機器上無效/刪除。

我在做什麼,現在是我存儲會話和涉及無餅乾所有用戶的信息。我無法弄清楚爲什麼這是一個壞主意。我的意思是我已閱讀有關會話劫持和會話到期的信息。

但是就會話劫持而言,如果我將用戶的ID加密並存儲在cookie中,並將用戶的對象保存在緩存中,並且某人盜取了某人獲取緩存的會話,並將用戶的對象取向正確?

在會話過期的條款,必須有一種方法來消除這種情況,我不知道它究竟是如何做到的,但我知道,它可能在ASP.Net來完成。可能堅持SQL服務器。

在當前背景下盤算如何進行身份驗證的最佳實踐在ASP.net MVC 2的任何幫助(請記住我的應用程序是一個iframe)將是非常讚賞。

問候, 科斯

+0

聽起來不錯,我認爲多數民衆贊成在如何asp.net角色提供者照顧。 – Sevki 2010-11-11 07:45:18

回答

0

我不熟悉與ASP.Net MVC 2,但是我知道Salesforce的很好,所以希望我可以提供一些指引。我真的不知道ASP.Net MVC 2將如何維持不任何餅乾會話,所以我假設有存儲在用戶的機器上至少一個重量輕ASP會話cookie,它被傳遞給每個請求上的服務器獲取實際的緩存用戶信息和其他會話信息。如果是這種情況,我建議讓Salesforce將生成的SFDC子會話標識發送到iframe中,然後將其存儲在ASP會話中。對於隨後的調用,唯一可以傳遞給服務器的東西就是輕量級ASP會話ID,然後可以使用它來訪問SFDC會話ID和其他信息。

至於你的要求,當用戶註銷殺ASP會議上,沒有一個偉大的方式,直接做到這一點(即但是由於生成的傳遞給您的iframe的SFDC會話標識是UI會話的子標記,因此當用戶註銷時,應該會失效。這意味着,你的應用程序將無法再訪問SFDC,但如果你也想殺死ASP會話,你可以通過驗證SFDC會議(發送類似getServerTimestamp一個簡單的API調用驗證對每個請求的ASP會話() ),如果你想成爲更積極,你可以查詢SFDC看看會話是否仍然有效每n分鐘。

+0

感謝您的回覆。你描述的正是我在做什麼,直到我已經去了,因爲讀書論壇裏面說不要存放登錄的用戶信息在會話paranoied: – user492814 2010-11-14 20:30:51

+0

1.它是不安全的,2.會議在某些時候到期,所以我可能結束SalesForce會話仍然打開,但.Net會話過期。 – user492814 2010-11-14 20:31:59