我已经在网上搜索了这个答案,虽然我发现了this one这样的问题,但我还没有找到具体的答案。
我有一个使用Forms身份验证的MVC网站提供登录支持(这基本上是MVC中的开箱即用登录支持)。
在同一个域中,我使用单一方法获得了WCF REST服务。
我要做的是看看我是否可以利用服务中的表单身份验证来查看请求者是否已经通过MVC应用程序“登录”了。在我发现的其他一些帖子之后,我确保web.config文件(w.r.t.Forms Authentication)是相同的(相同的机器密钥等)。
问题在于:我可以通过MVC站点登录(因此,通过cookie获取我的身份验证票证)。当我向我的服务发出GET请求时(请记住,在与MVC相同的域上),我可以看到“.ASPXAUTH”cookie随请求一起发送。
但是,我每次都收到“400 Bad Request”回复。此外,响应的主体表示
“服务器在处理请求时遇到错误......”
补充意见:
当然,当我删除.ASPXAUTH cookie时,我的服务中的两个断点都被命中(当然,在这种情况下,身份 未经过身份验证。
所以,在我看来:
我没有找到任何类似问题的引用,并且会欣赏另一组眼睛(或几千只眼睛)来指出我希望是一个非常愚蠢而明显的答案。
(如果有一个特定的代码区域,任何人都希望看到,我可以按要求添加。我不想进一步加重已经过度措辞的帖子,随机代码样本数量很多)
答案 0 :(得分:1)
作为解决方法,问题的答案并非如此。但是,我认为这是实现基本目标的更合适的方法。
我将功能移植到基于ServiceStack的解决方案。我的猜测是冲突发生在我使用的WCF REST入门套件代码中的某处,但我没有进行详尽的分析。
无论如何,使用这种新模式完成了在MVC站点和我的服务之间利用表单身份验证的基本目标。