我正在尝试从匿名用户那里获取 aspnet 成员资格 UserId 字段。

我在 web.config 中启用了匿名识别:

<anonymousIdentification enabled="true" />

我还创建了一个配置文件:
<profile>

  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ApplicationServices"
         applicationName="/" />
  </providers>

  <properties>
    <add name="Email" type="System.String" allowAnonymous="true"/>
    <add name="SomethingElse" type="System.Int32" allowAnonymous="true"/>
  </properties>

</profile>

我在 aspnetdb\aspnet_Users 表中看到了设置了个人资料信息的匿名用户的数据。
Userid                                  PropertyNames   PropertyValuesString
36139818-4245-45dd-99cb-2a721d43f9c5    Email:S:0:17:   [email protected]

我只需要找到如何获取“Userid”值。

无法使用:
 Membership.Provider.GetUser(Request.AnonymousID, false);

Request.AnonymousID 是不同的 GUID,不等于 36139818-4245-45dd-99cb-2a721d43f9c5。

有什么办法可以得到这个Userid。我想将它与匿名用户的未完成事件相关联。使用 aspnet_Users 的主键比必须创建我自己的 GUID(我可以这样做并存储在配置文件中)更可取。

这基本上是一个 dupe of this question 但这个问题从未真正得到回答。

最佳答案

您可以通过以下方式获取匿名用户的 UserId:

字符串 userId = Request.AnonymousID

关于asp.net-membership - 如何获取 ASP.NET 成员身份中匿名用户的 aspnetUsers.User Id?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1620102/

10-13 05:11