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

本文关键字:方法 Net 是什么 访问权 访问 权限 验证 | 更新日期: 2023-09-27 18:36:13

我有一个内置在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...

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

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

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

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

您可以考虑使用城堡动态代理在登录用户上注入操作的验证。