gpt4 book ai didi

c# - ssl channel wcf web api?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:22 25 4
gpt4 key购买 nike

我目前正在使用 WCF web api 开发一个 web api,它允许我编写 restful api。我担心的一个问题是安全性。出于这个原因,我决定使用非常有效的 OAuth 协议(protocol)来保护我的 api。然而,团队得出的结论是,我们自己的应用程序不应通过 oauth 授权,而应通过 http basic 授权,这意味着客户端应用程序应发送用户名和密码。

所以我有两个问题:

  1. 如何设置 WCF Web Api 以使用 SSL,我使用的是 Web Api 预览版 6,并且该项目是 MVC3 应用程序?
  2. 我有一个操作处理程序,负责从客户端访问 token 创建 IPrincipal,然后将其注入(inject)操作参数,这样我就可以访问用户的信息。我想在同一个操作处理程序中有一个条件,我可以检查授权方案是 OAuth 还是 http basic,然后在 http basic 的情况下提取用户的凭据并根据我的数据库验证该特定用户,如果身份验证成功创建 IPrincipal 并将其注入(inject)到操作参数中。但是,正如我所见,每次使用 http basic 的应用程序向 api 请求某些内容时,我都必须转到数据库并进行身份验证。所以我的问题是:我走的路是否正确,或者可以通过其他方式实现?

任何答案将不胜感激。先谢谢你!

最佳答案

您可以为 WCF Web API 设置 SSL,就像设置通过 HTTPS 公开的任何其他 WCF 服务一样。如果您托管在 IIS 中,则需要为 HTTPS 配置站点绑定(bind)。如果您是自托管的,那么配置会涉及更多。参见 http://msdn.microsoft.com/en-us/library/ms733768.aspx了解所有详细信息。

要针对自定义身份提供程序处理基本身份验证,您通常会在 IIS 中托管时使用自定义 authz 模块。有关如何执行此操作的示例,请参见 [http://custombasicauth.codeplex.com/]。如果您是自托管的,那么您可以使用自定义用户名 passworld 验证器。参见 http://msdn.microsoft.com/en-us/library/aa702565.aspx了解详情。

是的,我相信您是正确的,除非您建立某种类似 session 的语义,否则每个请求都需要身份验证。

希望这对您有所帮助。

关于c# - ssl channel wcf web api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com