4

我有一个内置在 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 上是有效的。但是我想运行一个自定义代码来检查他是否可以调用一个删除记录的方法。

4

1 回答 1

1

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

于 2012-06-01T18:18:55.290 回答