使用ASP保护WCF服务.. NET Auth和Silverlight的DomainService

本文关键字:Silverlight DomainService Auth NET ASP 保护 WCF 服务 使用 | 更新日期: 2023-09-27 18:03:32

我有基本的ASP。. NET认证域服务运行在我的Silverlight应用程序中(VS2010 Silverlight Business模板附带的那个)。

我如何使用认证,这授予安全方法暴露的标准WCF服务(也托管在IIS中的同一应用程序)?

使用ASP保护WCF服务.. NET Auth和Silverlight的DomainService

好的,这就是您的做法,标准WCF服务需要几个属性,并且您需要分配Thread.CurrentPrincipal:

[ServiceContract(Namespace = "")]
[SilverlightFaultBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1
{
    public Service1()
    {
        Thread.CurrentPrincipal = HttpContext.Current.User;
    }
    [OperationContract]
    [PrincipalPermission(SecurityAction.Demand, Role = "Registered Users")]
    public string DoSomeWork()
    {
        return "working";
    }
}

从这里开始:WCF RIA服务的安全性。你要找的是RequiresAuthentication属性。

[RequiresAuthentication]
public Foo SomeMethodCall(object parameter1)
{
    return service.GetResult(parameter1)
}