如何在ASP.NET会员中访问UserId而不使用Membership.GetUser()?

 2023-02-16    274  

问题描述

如何在ASP.NET成员身份中访问UserId而不使用Membership.GetUser(username)在ASP.NET Web应用程序项目中?

can UserId包含在UserName(System.Web.Profile.ProfileBase)旁边的Profile命名空间中?

如何在ASP.NET会员中访问UserId而不使用Membership.GetUser()?

推荐答案

我决定使用自己的用户用户进行身份验证(非常简单但它有效),我应该很久以前完成.

我的原始问题是关于userid,它不可用:

System.Web.HttpContext.Current.User.Identity.Name

其他推荐答案

试用:

MembershipUser CurrentUser = Membership.GetUser(User.Identity.Name);
Response.Write("CurrentUser ID :: " + CurrentUser.ProviderUserKey);

其他推荐答案

是您在每次需要userid时保存数据库调用的原因?如果是这样,当我使用ASP.NET MembershipProvider时,我通常会做一个自定义提供程序,允许我缓存该调用,或者我可以缓存的实用程序方法.

如果您正在考虑将其放入配置文件中,我没有看到很多原因,特别是它还仍然需要一个数据库调用,除非您在那里使用自定义个人资料提供程序,否则它有添加了解析UserID的处理.

如果您想知道为什么他们没有实现getUserID方法,那么它只是因为您并不总是保证用户ID将成为包含在附带提供者中的GUID.

编辑:

请参阅 scottgu的提供商文章,它提供了一个下载实际源代码的链接对于IE SQLMEMBERSHIPPROVIDER .

但最简单的事情实际上是您的用户对象中的getUserID()方法,或者实用程序类,如果在那里,您将从缓存/会话中获取UserID,否则以违反数据库,通过用户名(或存储)缓存它会话),并返回它.

更多要考虑的东西(但由于cookie大小限制而非常小心): forms auth:没有提供者的成员资格,角色和配置文件,没有会话

以上所述是小编给大家介绍的如何在ASP.NET会员中访问UserId而不使用Membership.GetUser()?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33829.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。