在 ASP.net 中持有用户 ID

Posted

技术标签:

【中文标题】在 ASP.net 中持有用户 ID【英文标题】:Holding userid in ASP.net 【发布时间】:2009-03-30 11:24:11 【问题描述】:

我正在使用 ASP.net 开发 Intranet 网站。我需要在网站中所有页面的所有回发中保留用户 ID。是否建议将这些信息保存在 Session 或其他可用的方式中。

【问题讨论】:

【参考方案1】:

FormsAuthentication 还能够保存自定义用户 ID,并为您解决很多事情,例如设置 cookie、登录页面重定向等。

您可以使用RedirectFromLoginPage 方法设置用户ID,然后使用FormsAuthentication_OnAuthenticate 事件查找并设置Page.User 属性,以访问您需要的所有其他逻辑。

【讨论】:

【参考方案2】:

如果使用表单身份验证,则用户名将是:

Page.User.Identity.Username

如果您需要同时保存另一条信息,请使用 Session。

PS。我建议使用一个类来包装你的会话变量以获得强类型和潜在的默认值。

【讨论】:

【参考方案3】:

最常用的方法是使用 ASP.NET 会话对象或使用 cookie。

无论哪种方式都可以,但如果您希望他们的用户信息即使在会话超时(例如关闭浏览器窗口)后仍然存在,那么您需要查看 cookie。会话信息将在浏览器关闭或活动超时时被释放。

【讨论】:

+/- 0:如果使用 cookie,请务必记住,用户可以构建自己的 cookie,因此可以使用另一个 ID 访问其他人的信息。

以上是关于在 ASP.net 中持有用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

.NET Web API 2 OWIN 持有者令牌身份验证

__VIEWSTATE 持有啥?

在 ASP.NET 中注销时如何杀死用户的会话

在asp.net中获取用户ID

如何在 ASP.NET 中获取登录用户信息

ASP.Net 将用户数据存储在 Auth Cookie 中