2

很好奇是否有办法在进行方法调用之前检查用户是否经过身份验证,然后返回自定义对象,如果不是,则不完成调用。例如:

我们在 global.asax 中的 Application_PostAuthenticateRequest 中将用户主体设置为发出请求的用户(如果他们已通过身份验证)或匿名用户(如果未通过身份验证)。目前在所有需要身份验证的方法中,我们都有类似于以下代码的内容:

public Result GetSomeObject()
{
         if (HttpContext.Current.Request.IsAuthenticated)
         {

         }
}

底线:我们希望能够在让 WCF 进入需要身份验证的方法的方法之前检查 IsAuthenticated,如果为 true,则继续,如果不是,则返回带有身份验证错误的 Result 对象 (JSON)。

4

3 回答 3

0

您可以编写一个自定义 httpmodule 来拦截对服务层的请求并在那里进行身份验证。

于 2011-03-17T14:20:13.310 回答
0

您需要开发的是 WCF 中的 ServiceAuthorizationManager。您可以在以下位置找到更多信息:

http://pieterderycke.wordpress.com/2011/04/07/implementing-restricted-access-to-a-wcf-service-with-the-serviceauthorizationmanager/

于 2011-04-16T08:02:00.967 回答
0

本文可能是您正在寻找的起点:http: //pieterderycke.wordpress.com/2010/12/04/extending-wcf-creating-a-logging-component/

于 2011-03-17T19:58:31.173 回答