1

我们目前有一大堆暴露在互联网上的 WCF REST 服务。多个移动设备使用这些服务(iOS、Android、Symbian 等)以及一系列跨平台解决方案。

我们做的第一件事就是确保一切都通过 SSL 运行。但是,我需要确保调用这些 REST 服务的设备经过身份验证才能执行此操作。例如,如果我有一个 RetrieveBalance POST,它获取身体中人员的 ID 号,任何人都可以使用其他 ID 号调用此方法并获取他们的余额。

在(例如)检索该人的余额之前,我需要每次调用基本上都对用户名和密码/密码进行身份验证。

WCF REST 中有没有一种方法可以在各种不同的平台上执行类似的操作?我的想法是在标头中添加用户名和密码,并使用以下方法在服务器上获取它:

 var username = WebOperationContext.Current.IncomingRequest.Headers["Username"];
 var pwd = WebOperationContext.Current.IncomingRequest.Headers["Password"];

有一个更好的方法吗?

4

2 回答 2

0

如果您正在使用,<security mode="Transport">则使用自定义用户/通行证验证器(不需要 IIS 模块)实现基本用户/通行证凭证类型。如果您不能这样做,最简单的方法是将用户名和密码参数添加到您的每个服务方法中,并在每次调用时验证它们。粗鲁但应该有效。

于 2012-05-04T19:03:13.170 回答
0

如果您使用的是 HTTPS,则可以使用基本身份验证- 如果您在 IIS 中托管服务,则进行自定义用户名和密码验证(默认实现需要 Windows 帐户)会有点棘手,但可以通过自定义模块。自托管服务不存在此问题,因为您可以实现自定义用户名密码验证器

于 2012-05-02T08:52:26.580 回答