gpt4 book ai didi

asp.net - ASP.NET_SessionId与.ASPXAUTH为什么我们都需要它们?

转载 作者:行者123 更新时间:2023-12-03 13:47:55 25 4
gpt4 key购买 nike

如果用户未登录,我们是否只能存储在 session 中并摆脱.ASPXAUTH?

最佳答案

ASP.Net_SessionId 是一个cookie,用于标识服务器上的用户session。 session 是服务器上的一个区域,可用于在http请求之间存储数据。

例如, Controller Action 可以执行:

Session["FirstName"] = model.FirstName;

然后,在后续操作中,可以从 session 中检索名字:
var firstName = Session["FirstName"];

ASP.Net_SessionId标识该用户请求的 session 。不同的用户将提交不同的cookie,因此 Session["FirstName"]将为该不同的用户保留不同的值。

ASPXAUTH 是一个cookie,用于识别用户是否是 authenticated(即,是否已验证其身份)。例如, Controller 操作可以确定用户是否提供了正确的登录凭据,如果是,则发出身份验证cookie using:
FormsAuthentication.SetAuthCookie(username, false);

然后,稍后您可以使用 [Authorize]属性检查用户是否被授权执行操作,该属性检查 ASPXAUTH cookie的存在。

因此,总而言之,cookies存在于两个不同的目的。一种确定用户的 session 状态,另一种确定用户是否已通过身份验证。

是的,要完成问题的答案,可以,您可以摆脱 ASPXAUTH cookie并仅使用 session 来标识用户(我已经在较旧的经典asp应用程序中看到了这一点),但我不建议这样做。更好地分离关注点并在必要时使用适当的方法要好得多。 session 和身份验证将设置自己的超时值。通过使用 session 进行身份验证,您将只有一次超时。我不确定仅在使用 session 进行身份验证时是否存在任何安全隐患,但是我仍然将它们分开。

关于asp.net - ASP.NET_SessionId与.ASPXAUTH为什么我们都需要它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758704/

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