零、前言

ASP.NET Web API 是一个框架,它使构建 HTTP 服务变得很容易,这些服务可以到达广泛的客户机,包括浏览器和移动设备。 它是在。net 框架上构建 RESTful 应用的理想平台。

这本书提供了一个实用指南,以确保您的 ASP。 asp.net Web API 通过各种安全技术,如集成 asp.net.NET 身份认证系统,实现多种认证机制,启用安全套接字层(SSL),防止跨站点伪造请求攻击,实现跨源资源共享。

这本书的内容

第 1 章,设置浏览器客户端,帮助您设置浏览器客户端以使用 Web API 服务。 它还涵盖了 ASP.NET Web API 安全架构、认证和授权,以保护 Web API 不受未授权用户的影响。

第二章在 ASP 中启用 SSL asp.net Web API,说明了如何使用 SSL 与 ASP.NET Web API,包括使用 SSL 客户端证书。 有几种常见的认证方案不能通过普通 HTTP 进行保护,特别是基本认证和表单认证,它们发送未加密的凭据。 为了安全,这些认证方案必须使用 SSL。 除此之外,还可以使用 SSL 客户机证书对客户机进行认证。

第三章集成 ASP。 asp.net 身份识别系统。 asp.net Web API,说明了如何集成 asp.net。 asp.net 身份识别系统。 净 Web API。 ASP.NET 身份识别系统的设计是为了取代以前的 asp.net.NET 会员和简单会员系统。 它包括概要文件支持和 OAuth 集成。 它的工作与 OWIN 和包括与 ASP.NET 模板是 Visual Studio 2013 及其后续版本附带的。

第四章使用 OAuth2 保护 web API,展示了如何使用 OAuth2 保护 web API 通过 OWIN 中间件对成员数据库进行认证。 您将能够使用本地登录使用 OAuth2 发送经过认证的请求。

第五章,在 Web API 中使用认证过滤器启用基本认证,介绍了如何使用认证过滤器为单个控制器或动作设置认证方案。 本章展示了一个实现 HTTP 基本访问认证方案的认证过滤器。 它还将介绍使用基本认证的优点和缺点。

第六章,确保 Web API 使用形式和 Windows 认证,解释了如何使用表单认证安全的 Web API 以及如何与他们的 Windows 用户可以登录凭证使用 Windows 集成验证。 您还将了解在 Web API 中使用窗体和 Windows 认证的优点和缺点。 表单认证使用 HTML 表单将用户凭证发送到服务器。 集成的 Windows 认证允许用户使用 Kerberos 或 NTLM 使用其 Windows 凭证登录。 客户端在 Authorization 报头中发送凭证。 Windows 认证最适合内网环境。

第 7 章使用 ASP 使用外部认证服务 NET Web API,帮助您理解为了启用 OAuth/OpenID 和社交媒体认证而需要外部认证服务。 在创建新的 web 应用时,使用外部认证服务有助于减少开发时间。 网络用户通常拥有多个流行网络服务和社交媒体网站的现有账户; 因此,当一个 web 应用从外部 web 服务或社交媒体网站实现认证服务时,它节省了原本在创建认证实现时所花费的开发时间。 使用外部认证服务可以使最终用户不必为 web 应用创建另一个帐户,也不必记住另一个用户名和密码。

第八章防止 Web API 中的跨站点请求伪造(CSRF)攻击,帮助您在 ASP 中实现反 CSRF 的措施。 净 Web API。 使用基于 API 密钥的认证或更复杂的机制(如 OAuth)有助于防止 CSRF 攻击。 ASP.NET MVC 使用防伪令牌,也称为请求验证令牌。

第 9 章在 ASP 中启用跨源资源共享(CORS) NET Web API,解释如何在您的 Web API 应用中启用 CORS。 浏览器安全性可以防止网页向另一个域发出 AJAX 请求。 此限制称为同源策略,用于防止恶意站点从另一个站点读取敏感数据。 然而,有时你可能想让其他网站调用你的 web API。

你需要什么来写这本书

开发软件要求:

  • Visual Studio 2013 或更高版本
  • Windows 7 及以上版本

开发硬件要求:

  • 1.6 GHz 或更快的处理器
  • 1gb RAM(如果在虚拟机上运行,则为 1.5 GB)
  • 10gb (NTFS)可用硬盘空间
  • 5400 转硬盘
  • DirectX 9-capable 显卡运行在 1024 x 768 或更高的显示分辨率

这本书是写给谁的

这本书是为每个拥有开发 ASP 知识的人准备的.NET Web API 应用。 良好的 c#和。net 框架的工作知识和经验是学习本书的先决条件。

约定

在这本书中,你会发现许多不同的文本样式来区分不同种类的信息。 下面是这些风格的一些例子,以及对它们含义的解释。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 url、用户输入和 Twitter 句柄如下所示:“我们可以通过使用include指令来包含其他上下文。”

一段代码设置如下:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

当我们希望提请您注意代码块的特定部分时,相关的行或项以粗体显示:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

任何命令行输入或输出都写如下:

# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample
 /etc/asterisk/cdr_mysql.conf

新词语、重要词语以粗体显示。 您在屏幕上看到的单词,例如,在菜单或对话框中,会出现如下文本:“单击Next按钮将您移动到下一个屏幕。”

注意事项

警告或重要说明显示在这样的框中。

提示

提示和技巧是这样的。

读者反馈

我们欢迎读者的反馈。 让我们知道你对这本书的看法——你喜欢或不喜欢这本书。 读者反馈对我们来说很重要,因为它能帮助我们开发出你能真正从中获益最多的游戏。

要向我们发送一般性的反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在邮件主题中提到这本书的标题。

如果有一个主题,你有专业知识,你有兴趣写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

现在,你已经自豪地拥有了一本书,我们有一些东西可以帮助你从购买中获得最大的好处。

示例代码下载

您可以从您的帐户http://www.packtpub.com下载您购买的所有 Packt Publishing 图书的示例代码文件。 如果您在其他地方购买这本书,您可以访问http://www.packtpub.com/support并注册,将文件直接通过电子邮件发送给您。

勘误表

尽管我们已经竭尽全力确保内容的准确性,但错误还是会发生。 如果你在我们的书中发现错误,也许是文本或代码上的错误,如果你能向我们报告,我们将不胜感激。 通过这样做,您可以使其他读者免受挫折,并帮助我们改进这本书的后续版本。 如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的图书,点击勘误表提交表格链接,并输入您的勘误表详细信息。 一旦您的勘误表被核实,您的提交将被接受,勘误表将被上载到我们的网站或添加到该标题的勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请访问https://www.packtpub.com/books/content/support并在搜索字段中输入书名。 所需资料将出现在勘误表部分。

盗版

在互联网上盗版受版权保护的材料是一个贯穿所有媒体的持续问题。 在 Packt,我们非常重视版权和授权的保护。 如果您在互联网上发现我们的作品以任何形式的非法拷贝,请立即提供我们的地址或网站名称,以便我们进行补救。

请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>与我们联系,并提供疑似盗版资料的链接。

我们感谢您的帮助,保护我们的作者和我们的能力,为您带来有价值的内容。

问题

如果您对本书的任何方面有任何疑问,您可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>与我们联系,我们将尽力解决问题。