WCF方法级别安全性或暴露

时间:2015-11-27 10:24:11

标签: wcf

我有服务,

[ServiceContract]
public interface IProduct
{
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "/Products/Update")]
    void Update(Product product);

    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "/Products")]
    Product[] Get();
}

现在我只希望域中的特定用户能够更新产品并调用此方法,只有方法本身才能检查登录用户是否是我想要授予权限的用户,有没有更好的方法?

Update(Product product)
{
   if (HttpContext.Current.User.Identity.Name == "Something")
   { 
       // update product
   }
}

1 个答案:

答案 0 :(得分:1)

好吧,您可以使用PriciplePermission属性来允许特定用户/组访问特定资源。使用内部ASP.Net角色提供程序。此属性可以在类级别以及单个方法上使用。

有关实施细节 -

https://msdn.microsoft.com/en-us/library/ms731200(v=vs.110).aspx