我有如下设想,
移动客户端
我将从移动客户端作为Http授权头向服务堆栈api (B)发送访问令牌,我不需要在Auth providers中使用服务堆栈构建,因为我的服务堆栈api (A)只是WCF服务(B)的中间api。
我将授权头作为HttpRequestMessageProperty发送到WCF服务(B)。我正在处理wcf服务侧(B)的其余验证。
有人知道吗?
发布于 2017-08-01 18:18:38
访问任何HTTP请求信息的方法是使用在任何地方都可用的IRequest接口,作为所有请求和响应过滤器和过滤属性中的参数,来自Services和Razor视图中的base.Request属性等。
授权HTTP请求头可以从HTTP请求标头集合中访问,例如:
var auth = httpReq.Headers[HttpHeaders.Authorization];如果您想对所有请求进行一般性处理,则通常使用一个全局请求筛选器来验证是否发送了有效的授权头,否则它是有效的,返回一个HTTP响应,例如:
this.GlobalRequestFilters.Add((req, res, requestDto) => {
var auth = req.Headers[HttpHeaders.Authorization];
if (auth == null)
{
res.StatusCode = (int)HttpStatusCode.Unauthorized;
res.EndRequest();
}
else if (!MyIsValid(auth))
{
res.StatusCode = (int)HttpStatusCode.Forbidden;
res.EndRequest();
}
});https://stackoverflow.com/questions/45443588
复制相似问题