我在我的Silverlight应用程序(VS2010 Silverlight Business模板附带的应用程序)中运行了基本的ASP.NET身份验证域服务。
如何使用此授权的身份验证来保护标准WCF服务公开的方法(也在IIS中的同一个应用程序中托管)?
答案 0 :(得分:1)
好的,这就是你的工作方式,标准的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";
}
}
答案 1 :(得分:0)
一个好的起点是:Security for WCF RIA Services。你要找的是RequiresAuthentication属性。
[RequiresAuthentication]
public Foo SomeMethodCall(object parameter1)
{
return service.GetResult(parameter1)
}