将数据与ASP.NET成员相关联

时间:2012-06-29 06:04:16

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework asp.net-membership

我正在做我的第一个基于ASP.NET成员资格的项目,我遇到了如何将我的自定义数据与特定成员联系起来的问题。这里的约定是什么?

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

有没有人知道已经在线编写的指南或其他有用的资源?

IF ** 它是相关的,我正在使用EF4进行数据库访问(我不直接需要EF和/或数据库访问的帮助,只有成员资格与其他数据相关) 。目前我正计划将成员资格存储在MsSQL中,而其他数据存储在MySQL中,因为GoDaddy在每个数据库上都有这个空间。

1 个答案:

答案 0 :(得分:5)

您需要唯一标识当前登录的用户。您最有可能想要使用MembershipUser.ProviderUserKey,这是MembershipProvider特定风格提供的唯一标识符。如果是SqlMembershipProvider,则此属性的值为Guid

所以你可以在你的投票记录上有一个属性,就像这样(假设你使用的是SqlMembershipProvider):

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

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

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

Vote vote = new Vote { UserId = userId };

当然,您可以在此处进行查询,以确保在创建和保存新投票之前不存在Votes UserId == userId