【问题标题】:Exposing only some method to user depending on authentication/authorization根据身份验证/授权仅向用户公开某些方法
【发布时间】:2014-03-31 00:06:36
【问题描述】:

刚刚学习了WCf Security,并搜索了如何在身份验证/授权的基础上只向我的客户端公开一些方法。
1) 与管理应用程序一样,服务应该公开所有方法。但是对于用户应用程序,相同的服务应该公开一些方法。
或者,2)如果管理员登录应用程序服务应该公开所有方法,如果用户类型用户(不是管理员)登录同一个应用程序,服务公开有限的方法。

我已阅读http://msdn.microsoft.com/en-us/library/ff405740.aspx,但这是基于 Windows 的身份验证/授权。

【问题讨论】:

    标签: c# wcf wcf-security


    【解决方案1】:

    在定义 Service Contract 时不能这样做,但可以将方法拆分为新服务: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
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 2012-10-22
      相关资源
      最近更新 更多