表单身份验证在WCF中重定向

时间:2011-07-16 10:11:25

标签: wcf forms forms-authentication

在asp.net中使用表单身份验证时,如何在访问WCF服务时停止302重定向到网页?

当客户端访问需要身份验证的aspx页面时,这是所需的行为,但是当身份验证失败时,不应将WCF服务重定向到HTML页面。

有什么想法吗?

汤姆。

2 个答案:

答案 0 :(得分:0)

这是表单身份验证的预期行为。

通常,人们不会对WCF服务使用表单身份验证,因为WCF客户端无法响应登录表单。

解决此问题的最佳方法是更改​​WCF服务上的身份验证方法

修改

根据您的评论,它可能是两件事之一:

  • 在用户登录之前发送AJAX请求
  • 未使用AJAX请求发送身份验证Cookie

答案 1 :(得分:0)

试试这个。

在您的登录服务中添加一个方法作为LogOn,并在用户未经授权时返回您想要的任何内容。

public String LogOn()
    {
        return "Unauthorized";
    }

然后按如下方式更新网络配置

<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
  <forms loginUrl="/LoginService.svc/LogOn"  />
</authentication>
<authorization>
  <deny users="?"/>
</authorization>