如何在网站上托管的WCF服务上授权用户

时间:2010-01-29 16:36:50

标签: asp.net wcf silverlight authorization

我有一个WCF服务,它在我的Web应用程序中运行,为Silverlight应用程序提供数据,定义如下(使用适当的.svc文件)....

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

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

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

我可以......

  1. 以某种方式为每个操作合同确定此信息。我查看了OperationContext对象,但无法找到突出的anthing,以确定用户是谁。

  2. 以某种方式归因于ServiceContract,以便该方法只能由授权用户使用?

  3. 在我的web.config中添加一些内容,以阻止未经通信的用户访问包含服务的文件夹?

  4. 非常感谢您的想法。

    感谢。

1 个答案:

答案 0 :(得分:0)

看看这里:Recipe: WCF basicHttpBinding with Windows Authentication

您还可以将.svc文件放入文件夹,并通过web.config中的<location>标记拒绝未经身份验证的用户访问