ASP.Net:如果我具有会话ID,可以获取会话对象吗?

ASP.Net:如果我具有会话ID,可以获取会话对象吗?

ASP.Net: If I have the Session ID, Can I get the Session object?

这个问题与这个问题有关,尽管我认为我在这个问题上花了太长的时间才能真正得到一个好的答案。 我会保持简短。

我正在研究一个Web处理程序(ashx),该处理程序接受来自aspx页面的表单发布。 处理程序收到此表单发布后,为了执行它需要做的事情,它需要知道已登录的用户(User.Identity.Name),但我不能依靠浏览器发送的cookie。

我知道我可以获取Session.SessionID并将其放置在隐藏的表单字段中,但是一旦我的处理程序收到表单发布,我如何使用该SessionID来确定已登录用户的身份?

我正在使用StateServer模式进行会话状态。


我认为您可以通过在HttpHandler上实现IReadOnlySessionState接口来实现


乔纳斯(Jonas)在这里对这个问题发表了一个很好的答案:

我可以将ASP.Net会话ID放在隐藏的表单字段中吗?


除非需要直接使用会话,否则您始终可以将有关登录用户身份的任何信息存储在单例字典或缓存中,并通过存储在隐藏字段中的SessionID进行引用。 我个人看到了安全问题,但不会涉及这些问题。 我会考虑为这种类型的实现发布单次使用身份。


在HttpHandler或HttpModule实现中,您不能始终从BeginRequest事件访问会话。 您可以处理另一个事件,称为OnAcquireRequestState。 如果您在该事件中编写代码,则HttpContext.Current.Session将不会为null。


推荐阅读

    linux无效对象的命令?

    linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,l

    linux上获取网管命令?

    linux上获取网管命令?,地址,系统,网络,信息,电脑,服务,网关,状态,名字,中心,l

    linux命令行获取ip?

    linux命令行获取ip?,地址,系统,代码,信息,电脑,服务,状态,密码,命令,网卡,【L

    linux命令获取主机名?

    linux命令获取主机名?,工作,地址,管理,系统,信息,命令,目录,软件,代码,策略,L

    linux获取网速命令?

    linux获取网速命令?,网络,工具,软件,地址,设备,5G,名称,工作,通讯,分析,linux

    linux命令获取时分秒?

    linux命令获取时分秒?,时间,系统,体系,标准,命令,工具,管理,国家,大陆,信息,l

    linux命令获取机器码?

    linux命令获取机器码?,地址,设备,工作,信息,命令,管理,系统,工具,目录,网络,l

    linux保持会话命令?

    linux保持会话命令?,系统,工作,地址,管理,信息,命令,工具,情况,环境,软件,Lin

    linux获取用户名命令?

    linux获取用户名命令?,系统,密码,信息,地址,名称,代码,命令,用户名,用户,用

    linux获取时间戳命令?

    linux获取时间戳命令?,时间,地址,工作,系统,数字,连续,信息,命令,管理,位置,l

    linux获取目录命令行?

    linux获取目录命令行?,工作,系统,地址,信息,数据,命令,标准,名称,环境,位置,l

    linux的获取ip命令?

    linux的获取ip命令?,地址,网络,系统,信息,设备,终端,技术,命令,数字,名称,lin

    linux只获取ip命令?

    linux只获取ip命令?,地址,网络,系统,信息,设备,数字,终端,命令,电脑,技术指

    linux命令行获取公网?

    linux命令行获取公网?,地址,网络,信息,系统,电脑,命令,终端,状态,名称,通信,

    linux如何获取命令行?

    linux如何获取命令行?,系统,工具,密码,信息,软件,命令,终端,位置,管理,发行,

    linux命令获取进程号?

    linux命令获取进程号?,网络,系统,情况,信息,工具,设备,状态,软件,进程,实时,l

    linux的hz获取命令?

    linux的hz获取命令?,系统,工作,管理,基础,信息,地址,状态,时间,网络,命令,别

    linux获取命令行结果?

    linux获取命令行结果?,系统,信息,工作,地址,设备,命令,软件,环境,目录,文件,L

    获取linux命令回显?

    获取linux命令回显?,系统,工具,底部,命令,设备,时间,信息,环境,电脑,标准,Lin