Защита служб WCF с использованием аутентификации ASP.NET и службы DomainService с Silverlight - PullRequest
1 голос
/ 23 июля 2011

В моем приложении Silverlight запущена базовая доменная служба аутентификации ASP.NET (которая поставляется с шаблоном VS2010 Silverlight Business).

Как я могу использовать аутентификацию, которую это дает, для защиты методов, предоставляемых стандартными службами WCF (также размещенными в том же приложении в IIS)?

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Хорошо, вот как вы это делаете, стандартная служба 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";
    }
}
0 голосов
/ 23 июля 2011

Хорошее место для начала здесь: Безопасность служб WCF RIA . То, что вам нужно, это атрибут requireAuthentication .

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