2

我正在基于 ASP.NET Membership 做我的第一个项目,但在弄清楚如何将我的自定义数据与特定成员相关联时遇到了问题。这里的约定是什么?

例如,我想做一个网络应用程序,人们可以在其中对不同的事情进行投票。为了确保人们不会一遍又一遍地投票,我想跟踪谁对什么投票进行了投票。(我提供了我的预期用途示例,但主要对通用实现感兴趣)

有谁知道已经在线编写的指南或其他好的资源?

如果**它是相关的,我正在使用 EF4 进行我的数据库访问(我不直接需要 EF 和/或数据库访问方面的帮助,只需要成员资格与其他数据的关系)。目前,由于 GoDaddy 在每个数据库上为我提供的空间,我正计划将成员资格存储在 MsSQL 中,并将其余数据存储在 MySQL 中。

4

1 回答 1

5

您需要唯一标识当前登录的用户。您很可能会想要使用MembershipUser.ProviderUserKey,这是由 . 的特定风格提供的唯一标识符MembershipProvider。在 的情况下SqlMembershipProvider,此属性的值为 a Guid

因此,您可以在投票记录中拥有一个属性,如下所示(假设您使用的是SqlMembershipProvider):

public class Vote
{
    public Guid UserId { get; set;  }
    // etc.
}

您可以像这样获取当前用户的 ID:

Guid userId = (Guid)Membership.GetUser().ProviderUserKey;

Vote vote = new Vote { UserId = userId };

当然,您可以从这里查询以确保在创建和保存新投票之前不存在VotesUserId == userId

于 2012-06-29T06:09:19.067 回答