WCF 服务 IIS,用于为外部客户端生成用户记录的服务

本文关键字:服务 用户 记录 客户端 外部 IIS 用于 WCF | 更新日期: 2023-09-27 18:32:55

我从.net和wcf服务开始,对不起,如果我问的是错误的或没有意义。顺便说一句,对不起我的英语。

我正在尝试构建几个托管在 IIS 上的 WCF 服务,互联网客户端可以使用他们的用户名/密码登录(存储在数据库中的信息(。登录后,他们可以访问自己的信息、查看自己的私人文档、更改个人资料以及与其帐户相关的更多操作。

好吧,asp.net 如果我在成功登录后获得会话,我可以构建"GetMyDocs"之类的服务,我知道"谁是",只需检查与会话 ID 一起存储的会话用户名当他调用登录并且他的会话不会超时。但是我注意到WCF服务是无状态的,所以这似乎我必须在执行服务之前向所有请求发送用户名/pwd并在数据库中检查它们...总是!?

以后,如果我想构建客户端桌面/Android/iOS应用程序,我将使用这些服务。然后,他们可以在成功登录后通过这些应用程序管理他们的个人和私人数据。

我应该如何处理?WCF 服务是要走的路还是 WCF 不是一个好的选择?如何使用 WCF 处理用户标识?因为我的所有服务都链接到用户和"GetMyDocs","SaveNewConfig","PayItem"...需要确定谁在呼叫。

提前感谢!!问候!

WCF 服务 IIS,用于为外部客户端生成用户记录的服务

但我注意到 WCF 服务是无状态的

这种说法有点错误。因为您可以轻松创建启用了状态的"基于 WCF"的 Web 服务。此外,状态是一个如此宽泛的术语,不值得在这里讨论。例如,可以将会话状态与 WCF 服务一起使用,也可以将服务的 InstanceContextMode 属性设置为下列属性之一:

  • 每次调用
  • 每会话

当然,这完全取决于您如何配置服务本身。

如果您的服务需要由不同的客户端使用,则应考虑实现 RESTful 服务以及 OAuth 2.0 或类似的东西,您可以使用基本身份验证标头或通过在成功身份验证后颁发访问令牌来对请求进行身份验证。

有多种

方法可以为 WCF 服务提供身份验证。 其中之一是使用会话(basicHttp 不支持会话,您必须使用 wshttp 或任何其他支持会话的传输(。 但是,启用会话只是为了避免在每个请求上发送凭据而产生巨大的开销。

会话会大大降低可扩展性,但如果您不担心它......这是一种选择。