【问题标题】:How to authorise users on an WCF Service hosted in a website如何在网站中托管的 WCF 服务上授权用户
【发布时间】:2010-01-29 16:36:49
【问题描述】:

我有一个在我的 Web 应用程序中运行的 WCF 服务,它向 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 对象的内部,但找不到可以作为确定用户身份的方法。

  2. 以某种方式赋予 ServiceContract 属性以使该方法只能由授权用户使用?

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

您的想法将不胜感激。

谢谢。

【问题讨论】:

标签: asp.net wcf silverlight authorization


【解决方案1】:

看这里:Recipe: WCF basicHttpBinding with Windows Authentication

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

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多