gpt4 book ai didi

servicestack - 如何在 servicestack.net 中获取 HttpContext

转载 作者:行者123 更新时间:2023-12-04 23:23:58 25 4
gpt4 key购买 nike

我无法切换到所有服务堆栈的新提供程序、身份验证等。因此,我正在运行一个混合方案并且效果很好。

为了让当前用户投入使用,我这样做:

    private IPrincipal CurrentUser()
{
var context = HttpContext.Current;
if (context != null)
{
var user = context.User;
if (user != null)
{
if (!user.Identity.IsAuthenticated)
return null;
return user;
}
}
return null;
}

有没有替代/更好的方法可以直接从服务中获取当前的 http 上下文?如果不需要,我宁愿不必使用 HttpContext.Current 吗?

最佳答案

这是另一种方式......它通过ServiceStack获得OriginalRequest这将是一个 ASP.NET 请求(但如果不在 ASP.NET 应用程序中使用,则可能是 HttpListener HttpRequest)。不确定它是否更好,但您的服务代码中不再有 HttpContext.Current 。

public class MyService : Service
{
public object Get(MyRequest request)
{
var originalRequest = this.Request.OriginalRequest as System.Web.HttpRequest;
var user = originalRequest.RequestContext.HttpContext.User;
// more code...
}
}

关于servicestack - 如何在 servicestack.net 中获取 HttpContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674263/

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