如何使用Forms身份验证调用RESTFul WCF服务

时间:2015-05-13 09:07:11

标签: wcf asp.net-mvc-4 wif restful-authentication

假设:

客户端是为STS Passive Issue配置的Web应用程序(ASP.NET) 服务器是具有2个服务的MVC应用程序(1.发出令牌,其他获取元数据) 另一方面,服务器配置为表单身份验证,如果进行了未经身份验证的访问,则应重定向到“登录”页面。

工作流程:

  1. 最终用户尝试加载客户端。
  2. 通过重定向到STS服务器与STS联系。
  3. 服务器配置了带有重定向URL的表单身份验证。
  4. 但是服务器不会重定向到登录页面。相反,它允许调用问题的终点。

    我尝试在web.config中限制via authorization标签。此外,我尝试使用location tag来明确设置授权。但它仍然允许通话。

    我引用了很多博客

    How to: Enable the WCF Authentication Service

    How to: Customize User Login When Using the WCF Authentication Service

    但没有运气。

1 个答案:

答案 0 :(得分:0)

使用ADFS很容易实现。如果ADFS是您的STS,请使用以下步骤:

  1. 导航到ADFS Web应用程序所在的文件夹(通常为C:\ inetpub \ adfs \ ls)

    1. 制作当前web.config的安全副本

    2. 在记事本中打开web.config

    3. 找到

    4. 在,更改身份验证的顺序,以确保它首先列出表单身份验证

    5. 订单必须如下所示:

    6. <add name="Forms" page="FormsSignIn.aspx" />       
      
      <add name="Integrated" page="auth/integrated/" />
      
      <add name="TlsClient" page="auth/sslclient/" />
      
      <add name="Basic" page="auth/basic/" />
      

      1. 保存更改(您无需重新启动ADFS)

      2. 导航到您的应用程序并单击“登录”。将弹出包含登录对话框的页面,而不是将登录请求发送到ADFS。请输入您的凭证,然后单击“确定”。然后,您将得到与上面相同的结果。

      参考文章:

      Claims Aware MVC4 App using WIF Identity and Access tool in .Net 4.5 Part I

      Claims Aware MVC4 App using WIF Identity and Access tool in .Net 4.5 Part II