2010-01-29 138 views
2

我有一个WCF服务运行在我的Web应用程序中,该服务向Silverlight应用程序提供数据,定义如下(使用适当的.svc文件)....如何授权用户在网站上托管的WCF服务

[ServiceContract(Namespace = "")]  
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class DispatchService 
{ 
    [OperationContract] 
    public DateTime GetServerTime() 
    { 
     // Add your operation implementation here 
     return DateTime.Now; 
    } 

这个想法是,用户登录网站,然后授权所有服务。我不想让我的Silverlight应用程序具有登录方面来验证用户身份。

因此,我不希望任何人能够打电话给我未经过身份验证的服务。

难道我......

  1. 不知怎的,确定这对每个经营合同。我查看了OperationContext对象的内部,但是找不到可以确定用户是谁的方式。

  2. 不知何故将ServiceContract属性赋值,以便该方法只能由授权用户使用?

  3. 把东西放在我的web.config中,以阻止无法访问的用户无法访问包含服务的文件夹?

您的想法将非常感激。

谢谢。

+1

http://stackoverflow.com/questions/1087271/passing-formsauthentication-拒绝访问未经授权的用户饼干到一个WCF的服务 – Arthur 2010-01-29 16:46:30

回答