什么是验证方法访问权限的最优雅方法(C#.Net)

时间:2012-06-01 18:13:17

标签: c# web-services security

我有一个内置于WCF(C#.Net)的WebService,它包含许多方法。在每种方法中,我都不想验证当前用户是否可以访问此特定操作。

现在,我有这样的事情:

    public MyContract MyMethod(int MyParameter)
    {
        ValidateAccess(MyCurrentIdentityInfo, ActionEnum);

        // Do stuff here...
    }
    public void MyMethod2(int MyParameter)
    {
        ValidateAccess(MyCurrentIdentityInfo, ActionEnum);

        // Do stuff here...
    }
    etc...

你会注意到我在开始时调用一个方法来检查访问权限,然后执行我需要的代码。这段代码工作正常,但我必须在我的服务中的每个方法上调用此方法,我觉得它不是很漂亮。

有没有更优雅的方式来实现我想要做的事情?我尝试使用自定义属性但没有成功。

请注意,我不是要尝试在WebService本身上对用户进行身份验证。在上面的例子中,用户在WebService上是有效的。但是我想运行一个自定义代码来检查他是否可以调用一个删除记录的方法。

1 个答案:

答案 0 :(得分:1)

您可以考虑使用Castle Dynamic Proxy为已登录用户注入操作验证。