刚刚学习WCf Security,并在认证/授权的基础上搜索了如何仅向我的客户公开一些方法。
1)与管理应用程序一样,服务应公开所有方法。但对于User应用程序,同一服务应该公开一些方法
或者,2)如果管理员登录了应用程序服务,则应公开所有方法,并且如果usertype用户(不是admin)登录到同一应用程序,则公开有限的方法。
我已阅读http://msdn.microsoft.com/en-us/library/ff405740.aspx,但这是基于Windows的身份验证/授权。
答案 0 :(得分:0)
在定义服务合同时不能这样做,但是你能做的是将方法拆分为新服务:UserService和AdminService,如下所示:
[ServiceContract]
public interface IUserService
{
[OperationContract]
void DoUserStuff();
}
[ServiceContract]
public interface IAdminService : IUserService
{
[OperationContract]
void DoAdminStuff();
}
例如,当用户通过身份验证时,根据他的角色,您可以向他发送特定服务的URL
[ServiceContract]
public interface IService
{
[OperationContract]
string Login(string username, string password); // it returns URL of UserService or AdminService
}