0

因此,我试图重用Membership.GetUser().ProviderUserKey以获取当前登录用户的 UserID,而无需在每次调用时重新获取它。

到目前为止,我读到的所有内容都说使用配置文件值,但是如果配置文件存储在 SQL 服务器上,使用SQLProfileProvider它是否比 db 往返提供任何优势?

有没有办法在 MVC 中声明一个获取一次的对象(对于每个 HTTP Post,我意识到这不能在多个回发中重复使用)。

  • 会话正在使用 SQL 提供程序
  • 配置文件正在使用 SQL 提供程序
  • 成员资格正在使用 SQL 提供程序

该应用程序在网络场上运行,因此我需要使用 SQL 服务器,但希望在每个请求的每台机器上进行缓存,而不是每次需要时执行 100 次往返来获取用户 ID。

4

1 回答 1

3

User.Identity.Name就是你要找的。如果您使用表单身份验证,这只是来自经过身份验证的客户端随每个请求自动发送的身份验证 cookie。为您提供当前经过身份验证的用户名。没有会员资格(又名 DB)访问。

如果您想存储有关用户的一些附加信息,您可以使用user data表单身份验证票的部分和自定义 Authorize 属性来检索IPrincipal来自 cookie 的每个请求的自定义。

于 2012-07-10T21:13:36.663 回答