c# - 如何在 ajax wcf 服务中使用防伪 token

标签 c# ajax wcf antiforgerytoken

我有一个 ASP MVC 网站,它通过 JSON 编码的 ajax 使用 wcf 服务。 是否有任何构建方式可以通过 ajax <--> wcf 服务使用防伪 token ?

这是它在 asp mvc 应用程序中的使用方式。 http://weblogs.asp.net/dixin/archive/2010/05/22/anti-forgery-request-recipes-for-asp-net-mvc-and-ajax.aspx

最佳答案

Anti Forgery Token 我确定您知道在 MVC 框架中默认情况下是可用的,您正在使用 Ajax 到 WCF,这实际上与 MVC 没有任何关系,除了您的大纲概念。

要通过 MVC View 向 WCF 服务提供安全的 Ajax 调用,您将走很长的路。

首先,您需要使用 Ajax 防伪 token 实现,请参阅下面的链接。您还需要一个数据库来管理带有到期日期的 WCF token 。

您需要在加载时转储出 WCF token ,并在每个 WCF 请求上传递 token 。 token 将针对数据库进行验证。如果 token 已过期,您将需要使用 AJAX 防伪造 token 执行另一个 Ajax 请求以生成新的 WCF token 返回 token 并在您的 WCF Ajax 请求中使用它。

总而言之,您将有两个 token ,一个用于验证您对 MVC Controller 的 Ajax 请求,另一个用于 WCF 请求。这种方法将为您提供一个安全的请求模型,以减少 CSRF 的机会。

关于 CSRF 的更多信息:http://www.troyhunt.com/2010/11/owasp-top-10-for-net-developers-part-5.html

MVC Ajax 防伪造 token :http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

希望这对您有所帮助。

关于c# - 如何在 ajax wcf 服务中使用防伪 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423681/

相关文章:

c# - 安装 Google Cardboard Unity SDK 后,"Cardboard"未在 Unity Android 选项中显示为选项

javascript - 动态复选框不保存到数据库

javascript - 无法通过 Ajax 从文件 PHP 调用检查 session

jquery - 将 jquery 插件应用于加载的 ajax 内容

c# - 在 WCF 中,操作是否总是在与消息检查器相同的线程上调用?

c# - 如何更新 StackPanel 的布局?

c# - 如何将 LinkedList 中节点的 Next 属性设置为另一个 LinkedList 中的另一个节点?

wcf - Windows Workflow Foundation (WF) 服务中的 canCreateInstance

c# - 创建 ADO.NET DataService 客户端的最佳实践

.net - 没有端点监听 net.pipe ://localhost/