Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 如何从ServiceStack中的layoutfile获取会话对象?_Session_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,Session,servicestack" /> servicestack,Session,servicestack" />

Session 如何从ServiceStack中的layoutfile获取会话对象?

Session 如何从ServiceStack中的layoutfile获取会话对象?,session,servicestack,Session,servicestack,从所有其他页面中,我可以通过以下代码获得会话对象: @{ var user = Request.GetSession(); } Authenticated: @user.IsAuthenticated 当我试图从布局文件获取会话时,我收到以下错误消息“无法编译模板。有关详细信息,请查看错误列表” 我在这个项目上使用自托管,会话对象的使用方式与ASP.NET项目不同 有人能告诉我如何解决这个问题的正确方向吗?好吧……如果您只是提供使用“布局”(或父)页面的静态内容(即呈现一个没

从所有其他页面中,我可以通过以下代码获得会话对象:

@{
    var user = Request.GetSession();
}

Authenticated: @user.IsAuthenticated    
当我试图从布局文件获取会话时,我收到以下错误消息“无法编译模板。有关详细信息,请查看错误列表”

我在这个项目上使用自托管,会话对象的使用方式与ASP.NET项目不同


有人能告诉我如何解决这个问题的正确方向吗?

好吧……如果您只是提供使用“布局”(或父)页面的静态内容(即呈现一个没有服务“支持”的页面,如主页),我认为您无法检索会话对象,因为请求将为空

如果您正在呈现一个由服务支持的页面,并且它使用了一个_布局页面,我认为类似的东西应该可以工作

@{
    var auth = false;
    if (Request != null)
    {
        var key = Request.Cookies["ss-id"];
        var sess = Cache.GetSession(key.Value);
        auth = sess.IsAuthenticated;
    }
}
Authenticated: @auth
这应该适用于使用ServiceStack的ASP.NET MVC/Razor应用程序的_Layout.cshtml文件。我还没有用ServiceStack.Razor尝试过

var key=SessionFeature.GetSessionKey()??""; var sess=AppHost.Resolve().Get(键)


希望这有帮助

好吧……如果您只是提供使用_布局(或父)页面的静态内容(即呈现未被服务“支持”的页面,如主页),我认为您无法检索会话对象,因为请求将为空

如果您正在呈现一个由服务支持的页面,并且它使用了一个_布局页面,我认为类似的东西应该可以工作

@{
    var auth = false;
    if (Request != null)
    {
        var key = Request.Cookies["ss-id"];
        var sess = Cache.GetSession(key.Value);
        auth = sess.IsAuthenticated;
    }
}
Authenticated: @auth
这应该适用于使用ServiceStack的ASP.NET MVC/Razor应用程序的_Layout.cshtml文件。我还没有用ServiceStack.Razor尝试过

var key=SessionFeature.GetSessionKey()??""; var sess=AppHost.Resolve().Get(键)


希望这有帮助

使用ViewPage的
GetSession
进入您的会话

@inherits ViewPage

@{
    var user = GetSession<AuthUserSession>();
}

<h1>@user.IsAuthenticated</h1>
@继承ViewPage
@{
var user=GetSession();
}
@user.IsAuthenticated

使用ViewPage的
GetSession
进入您的会话

@inherits ViewPage

@{
    var user = GetSession<AuthUserSession>();
}

<h1>@user.IsAuthenticated</h1>
@继承ViewPage
@{
var user=GetSession();
}
@user.IsAuthenticated

我使用的是自托管,会话对象的行为与ASP.NET解决方案不同。我使用的是自托管,会话对象的行为与ASP.NET解决方案不同。我忘了提到我使用的是自托管。此解决方案出现NotImplemented错误(仅支持通过Singleton访问的ASP.NET请求)。根据其他上下文编辑了答案。这似乎不起作用。我改变了页面的结构。我现在使用@Html.Partial而不是\u布局。这行得通。嗯……什么不行?我在自己主持的Razor Rockstars项目中对其进行了测试。@Html.Partial解决方案似乎是处理这个问题的好方法。我忘了提到我正在使用自托管。此解决方案出现NotImplemented错误(仅支持通过Singleton访问的ASP.NET请求)。根据其他上下文编辑了答案。这似乎不起作用。我改变了页面的结构。我现在使用@Html.Partial而不是\u布局。这行得通。嗯……什么不行?我在自己主持的Razor Rockstars项目中对其进行了测试。不过,@Html.Partial解决方案似乎是处理它的好方法。