wcf - ASP.NET、SilverLight、WCF 和表单例份验证 - 如何配置端点?

标签 wcf silverlight forms-authentication asp.net-3.5

我有这个现有的环境:

1) ASP.NET 3.5 web application

2) forms authentication with the SqlMembershipProvider



我需要添加以下内容:

1) a Silverlight charting object embedded in a web page.

2) a WCF service to be consumed by:

 a) the Silverlight component embedded in an authenticated 
       web page, as mentioned above

 b) server-based WCF clients with certificate based authentication


我的问题是 - 配置 Silverlight 对象的 WCF 端点以使用已登录用户的安全上下文(通过托管 Silverlight 对象的页面)对 WCF 服务进行身份验证的最简单/最佳方法是什么?再次使用用户的用户名/密码?

我研究了很多 MSDN 和 Patterns & Practices Material ,并且我认为我对许多潜在的身份验证场景有了很好的掌握。但我似乎无法找到一种方法将它们联系在一起,以实现我所概述的场景。我发现其他人向我发布了类似的问题,但我读过的答案似乎也没有完全回答他们的问题。 (也许我让这变得比它需要的更难?)

我认为解决方案是以某种方式使用在 asp.net 表单登录中生成的身份验证 token /cookie,并以某种方式将其传递给 Silverlight 对象,然后将其包含在 WCF 请求中。但我看不到如何配置 WCF 端点以使用该 token 。

(在我的其他一些项目中,我使用基于证书的身份验证在上面的 2.b 中实现了服务器到服务器的场景,所以我不太担心将其添加到我概述的当前组合中。)

在此先感谢您对前进道路的任何见解或指示。

特里

最佳答案

感谢 codemeit 试图提供帮助,但我终于弄清楚我做错了什么——这是飞行员的错误。

在尝试为我的 Silverlight 应用程序配置端点时,我正在使用 asp.net 页面进行测试。我终于意识到,当我以这种方式进行测试时,客户端端点不再源自经过身份验证的浏览器 - 客户端端点是 IIS 服务器,它反过来对 WCF 服务器端点执行请求。因此,安全上下文发生了变化,并且 HttpContext.Current.User.Identity 在 WCF 服务器端点处始终为空。

一旦我在浏览器中运行了我的测试 SL 应用程序,它就会自动继承经过身份验证的浏览器的安全上下文,然后 HttpContext.Current.User.Identity 是正确的,并在 WCF 服务器端点进行了身份验证。

关于wcf - ASP.NET、SilverLight、WCF 和表单例份验证 - 如何配置端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772255/

相关文章:

c# - 在 WCF UsernamePasswordValidator 中访问当前的 InstanceContext

visual-studio - XAML : How to change background color only in Design mode?

silverlight - 是否可以在 Mac 上使用 Silverlight 进行开发?

java - 使用 Java 登录,其中服务器身份验证可以如此或 Web 应用程序容器基本

c# - 在客户端应用程序中隐藏服务命名空间

c# - 意外类型 - 序列化异常

.NET 客户端使用 AXIS 1.4 SSL Webservice 所有异常 "INTERNAL SERVER ERROR"

wpf - 从图像中获取路径几何

c# - 如何处理 ASP.NET 中的表单例份验证超时异常?

asp.net - 安装 .net 4.5 自定义表单后,身份验证中断