我有一个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应用程序具有登录方面来验证用户身份。
因此,我不希望任何人能够拨打未经过身份验证的服务。
我可以......
以某种方式为每个操作合同确定此信息。我查看了OperationContext对象,但无法找到突出的anthing,以确定用户是谁。
以某种方式归因于ServiceContract,以便该方法只能由授权用户使用?
在我的web.config中添加一些内容,以阻止未经通信的用户访问包含服务的文件夹?
非常感谢您的想法。
感谢。
答案 0 :(得分:0)
看看这里:Recipe: WCF basicHttpBinding with Windows Authentication。
您还可以将.svc文件放入文件夹,并通过web.config中的<location>
标记拒绝未经身份验证的用户访问