使用 ServiceStack 和更多提供商进行身份验证
Authentication with ServiceStack and more provider
我声明我使用 ServiceStack 来验证我的服务。
我的问题是以下我正在通过凭据和 API 密钥开发两种身份验证方法。
实现是正确的,但我希望某些服务通过凭据进行身份验证,而其他服务则通过 API 密钥进行身份验证。从文档中阅读,在我看来,我明白在 [Authenticate] 属性中插入等于 属性 引用名称 Auth class(凭据或 API),例如获取 [Authenticated ("apikey")]。
不幸的是,在实现上面的示例时,如果我使用凭据进行身份验证,我可以调用该服务,而我只希望通过 API 密钥调用该服务。
你有什么解决办法?
非常感谢
[Authenticate(provider)]
将根据 Auth Provider 调用 AuthProvider IsAuthorized()
验证会话是否已通过身份验证来检查用户是否被认为已通过身份验证。
如果您想强制使用 API 密钥对请求进行身份验证,您可以在您的服务实现中检查它,例如:
if (Request.GetSession().AuthProvider != ApiKeyAuthProvider.Name)
throw HttpError.Forbidden("Must authenticate with API Key");
我声明我使用 ServiceStack 来验证我的服务。 我的问题是以下我正在通过凭据和 API 密钥开发两种身份验证方法。 实现是正确的,但我希望某些服务通过凭据进行身份验证,而其他服务则通过 API 密钥进行身份验证。从文档中阅读,在我看来,我明白在 [Authenticate] 属性中插入等于 属性 引用名称 Auth class(凭据或 API),例如获取 [Authenticated ("apikey")]。 不幸的是,在实现上面的示例时,如果我使用凭据进行身份验证,我可以调用该服务,而我只希望通过 API 密钥调用该服务。 你有什么解决办法? 非常感谢
[Authenticate(provider)]
将根据 Auth Provider 调用 AuthProvider IsAuthorized()
验证会话是否已通过身份验证来检查用户是否被认为已通过身份验证。
如果您想强制使用 API 密钥对请求进行身份验证,您可以在您的服务实现中检查它,例如:
if (Request.GetSession().AuthProvider != ApiKeyAuthProvider.Name)
throw HttpError.Forbidden("Must authenticate with API Key");