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