假设:
客户端是为STS Passive Issue配置的Web应用程序(ASP.NET) 服务器是具有2个服务的MVC应用程序(1.发出令牌,其他获取元数据) 另一方面,服务器配置为表单身份验证,如果进行了未经身份验证的访问,则应重定向到“登录”页面。
工作流程:
但是服务器不会重定向到登录页面。相反,它允许调用问题的终点。
我尝试在web.config中限制via authorization标签。此外,我尝试使用location tag来明确设置授权。但它仍然允许通话。
我引用了很多博客
How to: Enable the WCF Authentication Service
How to: Customize User Login When Using the WCF Authentication Service
但没有运气。
答案 0 :(得分:0)
使用ADFS很容易实现。如果ADFS是您的STS,请使用以下步骤:
导航到ADFS Web应用程序所在的文件夹(通常为C:\ inetpub \ adfs \ ls)
制作当前web.config的安全副本
在记事本中打开web.config
找到
在,更改身份验证的顺序,以确保它首先列出表单身份验证
订单必须如下所示:
<add name="Forms" page="FormsSignIn.aspx" />
<add name="Integrated" page="auth/integrated/" />
<add name="TlsClient" page="auth/sslclient/" />
<add name="Basic" page="auth/basic/" />
保存更改(您无需重新启动ADFS)
导航到您的应用程序并单击“登录”。将弹出包含登录对话框的页面,而不是将登录请求发送到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