Asp.net mvc OWIN和HttpContext.Current.Session

Asp.net mvc OWIN和HttpContext.Current.Session,asp.net-mvc,session,owin,Asp.net Mvc,Session,Owin,似乎OWIN不再依赖旧的ASP.NET管道,因此无法再设置基于会话的值 尽管如此,我还是没有找到一种简单的方法来在OWIN本身的每个浏览器会话中唯一地识别匿名用户(就像SessionId帮助我做的那样) 有什么想法吗?:) 似乎OWIN不再依赖旧的ASP.NET管道,因此无法再设置基于会话的值 首先,OWIN和Session完全没有任何关系。它们是完全独立的名称空间/功能 如果web.config不正确,会话将无法工作。您可以关闭OWIN,会话仍然可以工作。您可以关闭会话,OWIN仍然可以工作

似乎OWIN不再依赖旧的ASP.NET管道,因此无法再设置基于会话的值

尽管如此,我还是没有找到一种简单的方法来在OWIN本身的每个浏览器会话中唯一地识别匿名用户(就像SessionId帮助我做的那样)

有什么想法吗?:)

似乎OWIN不再依赖旧的ASP.NET管道,因此无法再设置基于会话的值

首先,OWIN和Session完全没有任何关系。它们是完全独立的名称空间/功能

如果web.config不正确,会话将无法工作。您可以关闭OWIN,会话仍然可以工作。您可以关闭会话,OWIN仍然可以工作

尽管如此,我还是没有找到一种简单的方法来在OWIN本身的每个浏览器会话中唯一地识别匿名用户(就像SessionId帮助我做的那样)

这一点从未改变(因为您没有给出我将在控制器中假定的任何上下文):


好吧,我马上下结论

我只是忘记了,要为给定浏览器设置会话,您只需在用户会话中设置至少一个值:)


干杯,Ben

您可以添加自己的OWIN中间件,设置一个持久cookie,以便在后续请求中读取。这就是
sessionstatemule
在引擎盖下所做的……如果没有足够的答案,请关闭/删除该问题。
if (HttpContext.User.Identity.IsAuthenticated)
{
  // user is not anonymous...
}