2009-08-13 128 views
0

我的网站使用表单身份验证。我做了silverlight 3模块,它被设计为在asp认证的用户环境中工作。 Silverlight模块与由同一个asp.net网站托管的WCF进行会谈,但问题是它无法对WCF服务进行身份验证。 我运行Fiddler,我发现.ASPXAUTH cookie不会发送到WCF服务。 如何强制Silverlight从浏览器获取此cookie并将其发送到服务?Silverlight和ASP.NET授权

回答

1

最后我解决了它。 缺少cookie的问题是由不正确的主机名造成的。 我正在发送asp.net请求到myhostname,但SL使用myhostname.mylocaldomainnam.local调用WCF。这就是为什么在WCF调用期间没有.aspauth cookie。

0

我已经成功地使用了它。首先,我确保ASP.NET所使用的WCF AuthorizationService有一个服务端点。然后使用Silverlight项目为AuthorizationService生成一个“服务引用”。最后,在你的模块中,你将使用该服务引用来使用存储在你的提供者中的凭证登录你的访问者。如果您有更多关于如何构建网站的信息,我可能会为您的问题提供更简洁的答案。

+0

用户在asp.net网站上登录。然后他可以进入Silverlight模块。我不希望用户在Silverlight中再次登录,我也不想在任何临时位置(浏览器/会话)中存储他的密码 – tomo 2009-08-15 23:01:29

+0

它们是一样的。登录到使用表单身份验证的页面将创建与使用WPF身份验证服务相同的cookie。因此,登录到页面将允许传递到Silverlight,就​​像登录到Silverlight将允许传递到ASP.NET一样。 顺便说一句,密码永远不会存储在任何地方使用窗体身份验证。 – Rick 2009-08-16 18:19:32

+0

为什么我需要添加对身份验证服务的引用?我是否需要在Silverlight客户端中通过此服务调用任何函数(或配置)? – tomo 2009-08-17 07:12:15