客户端无法访问Ria服务(RequiresAuthentication服务)

时间:2011-08-18 12:07:17

标签: silverlight wcf silverlight-4.0 wcf-ria-services

我的Silverlight解决方案中有2个域服务,它们都有RequiresAuthentication属性。当用户转到应用程序并登录时,他们可以调用服务A并且它正常工作但是当用户调用服务B时它会抛出异常Load operation failed for query 'X'. Access to operation 'X' was denied.

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要一个可能设置了RequiresAuthentication的注释中提到的身份验证服务,除非您希望首先在ASP.NET中进行身份验证,然后为什么要使用该服务?

我按照此处的定义实施了我的服务:http://www.codeproject.com/KB/silverlight/IssueVisionSilverlightPt3.aspx#AuthenticationService 但是ValidateUser(userName, password, out userData)中不明显的是,userData可以在此处为空,或FormsAuthentication.Encrypt(ticket) 始终返回null,因此为Silverlight设置auth cookie以发送到域服务请求。您可以使用Fiddler确定是否正在发送cookie,并且您绝对需要这个以使auth和域服务“相互通信”。

更奇怪的部分是[EnableClientAccess(RequiresSecureEndpoint = true)],因为这似乎需要在web.config表单部分中要求SSL = true,并且所有流量必须通过https。对我来说,这意味着在客户端上检测到这一点,然后在>之前重定向触发任何身份验证。