【发布时间】:2009-10-02 07:52:42
【问题描述】:
是否可以创建适用于 ASMX Web 服务的 MVC 样式过滤器属性(如 Authorize 或 HandleError)?
具体来说,我对我的一些 web 方法执行自定义身份验证,并希望将代码包装到一个引发异常的属性中,如果身份验证检查失败。
丰富
【问题讨论】:
标签: asp.net-mvc web-services attributes filter asmx
是否可以创建适用于 ASMX Web 服务的 MVC 样式过滤器属性(如 Authorize 或 HandleError)?
具体来说,我对我的一些 web 方法执行自定义身份验证,并希望将代码包装到一个引发异常的属性中,如果身份验证检查失败。
丰富
【问题讨论】:
标签: asp.net-mvc web-services attributes filter asmx
由于 ASMX 也是 ASP.NET 管道的服务器,因此您可以只使用 HttpModules,它可以让您对输入和输出进行大量控制。
这是一个参考和一个例子: http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx
如果你想让它非常“类似于 MVC”,那么你可以编写一个自定义的 http 模块来检查 web 服务的属性,例如 [Authorize] 等。由于 ASP.NET MVC 是开源的,你可以只使用部分作为他们如何检查属性等的参考,然后将其构建到您的 HTTPModule 中。
HTH 亚历克斯
【讨论】:
HttpModule 用于 Web 服务中的全局异常处理。
你可以模仿一些效果。请记住,ASMX Web 服务只包装任何公共方法,您可以使用 PrincipalPermissionAttribute 之类的东西来保护您的服务。
【讨论】: