Asp.net mvc Silverlight 4-MVC 2 ASP.NET成员资格集成“;“单点登录”;

Asp.net mvc Silverlight 4-MVC 2 ASP.NET成员资格集成“;“单点登录”;,asp.net-mvc,silverlight,asp.net-membership,azure,Asp.net Mvc,Silverlight,Asp.net Membership,Azure,情景: 我有一个使用ASP.NET窗体身份验证的ASP.NET MVC 2站点 该站点包含一个Silverlight 4应用程序,需要安全地调用内部web服务 web服务还需要公开以供第三方验证访问 挑战: 使用当前用户身份从Silverlight安全地访问Web服务,而无需用户重新登录Silverlight应用程序 为第三方应用程序提供一种安全的方式,使其能够使用相同的用户凭据访问相同的Web服务,理想情况下无需使用ASP.NET表单身份验证 其他详细信息和限制: 此应用程序托管在Azure中

情景:

  • 我有一个使用ASP.NET窗体身份验证的ASP.NET MVC 2站点

  • 该站点包含一个Silverlight 4应用程序,需要安全地调用内部web服务

  • web服务还需要公开以供第三方验证访问

  • 挑战:

  • 使用当前用户身份从Silverlight安全地访问Web服务,而无需用户重新登录Silverlight应用程序

  • 为第三方应用程序提供一种安全的方式,使其能够使用相同的用户凭据访问相同的Web服务,理想情况下无需使用ASP.NET表单身份验证

  • 其他详细信息和限制:

  • 此应用程序托管在Azure中

  • 如果可能的话,我们宁愿不使用RIA服务

  • 正在考虑的解决办法:

  • 我认为,如果webservices是承载Silverlight应用程序的同一个MVC站点的一部分,那么表单身份验证可能应该基于用户表单身份验证cookies从Silverlight“正常工作”。但这似乎排除了单独托管Web服务的可能性(这在我们的场景中是可取的)

  • 对于第三方访问web服务,我猜使用不同的身份验证解决方案分离端点可能是正确的答案,但如果可能,我宁愿只支持一个版本的服务

  • 问题:

  • 有人能给我介绍一下实现类似这样东西的示例应用程序吗

  • 您建议如何实施此解决方案


  • 您可以扩展WCF以将成员身份用作身份验证存储,并通过Silverlight应用程序将FormsAuth Cookie(由MVC站点发送)重用到浏览器

    您可以扩展WCF,将成员身份用作身份验证存储,并通过Silverlight应用程序将FormsAuth Cookie(由MVC站点发送)重新用于浏览器

    >我建议使用带有Windows身份基础的STS,这样您就可以让应用程序使用声明身份,然后在应用程序外部更改身份验证。对于第三方,您可以使用Windows Azure访问控制服务(ACS)。我们正在更新这方面的指导,您可以查看新代码,在我们的网站上向您展示如何做到这一点。这本书的原著可以在网上找到。我会把重点放在更新后的指南上,因为它有ACS的网站和一个与WCF对话的活动客户端。客户端是WPF,但它类似于Silverlight。

    < P>我建议使用带有Windows身份基础的STS,这样您就可以让应用程序使用声明身份,然后在应用程序外部更改身份验证。对于第三方,您可以使用Windows Azure访问控制服务(ACS)。我们正在更新这方面的指导,您可以查看新代码,在我们的网站上向您展示如何做到这一点。这本书的原著可以在网上找到。我会把重点放在更新后的指南上,因为它有ACS的网站和一个与WCF对话的活动客户端。客户是WPF,但Silverlight的情况类似。

    基于对这个问题的缺乏回答,我假设没有很好的答案……SSO是一只屡败屡战的狗,这里和其他地方都有很多例子,但你的故事可以说是一个角落,因此根据现有经验可能没有太多答案。我会说,从我的经验来看,这显然是一个合理且可实施的故事,但需要一些集中的关注,而这些关注是那些尚未实施这样一个故事的人不可能给予的。祝你好运。我有一个非常相似的场景。你到底做了什么?我们最终采用了一种混合的方法:在silverlight应用程序所在的同一站点上设置一个安全Web服务端点,以获取安全令牌,然后将需要该令牌进行身份验证的其他服务器上的Web服务端点分开。基于对这个问题的缺乏响应,我将假设没有很好的答案……SSO是一条屡败屡战的狗,这里和其他地方都有很多例子,但你的故事可以说是一个绝无仅有的例子,所以答案可能不多根据随时可用的经验。我会说,从我的经验来看,这显然是一个合理且可实施的故事,但需要一些集中的关注,而这些关注是那些尚未实施这样一个故事的人不可能给予的。祝你好运。我有一个非常相似的场景。你到底做了什么?我们最终采用了一种混合方法:在silverlight应用程序所在的站点上设置一个安全Web服务端点,以获取安全令牌,然后在其他需要该令牌进行身份验证的服务器上分离Web服务端点。