【发布时间】:2012-06-01 18:13:16
【问题描述】:
我有一个内置于 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 上是有效的。但是我想运行一个自定义代码来检查他是否可以调用一个删除记录的方法。
【问题讨论】:
-
Mvc 有安全的动作过滤器,你可以看看它们是如何实现的。
标签: c# web-services security