很奇怪是否有办法在进行方法调用之前检查用户是否经过身份验证,然后返回自定义对象,如果不是则不完成调用。例如:
我们将global.asax中的Application_PostAuthenticateRequest中的用户主体设置为发出请求的用户(如果已经过身份验证),或者设置为匿名用户(如果不是)。目前,在所有需要身份验证的方法中,我们都有类似于以下代码的内容:
public Result GetSomeObject()
{
if (HttpContext.Current.Request.IsAuthenticated)
{
}
}
结论:我们希望能够在让WCF进入需要身份验证的方法的方法之前检查IsAuthenticated,如果为true,则继续,否则返回带有身份验证错误的Result对象(JSON)。 / p>
答案 0 :(得分:0)
您可以编写自定义httpmodule来拦截对服务层的请求,并在那里进行身份验证。
答案 1 :(得分:0)
这篇文章可能是您正在寻找的内容的起点:http://pieterderycke.wordpress.com/2010/12/04/extending-wcf-creating-a-logging-component/
答案 2 :(得分:0)
您需要开发的内容在WCF中称为ServiceAuthorizationManager。您可以在以下网址找到有关此内容的更多信息: