2

ASP.NET メンバーシップに基づいて最初のプロジェクトを行っていますが、カスタム データを特定のメンバーに関連付ける方法を理解するのに問題があります。ここでのコンベンションは何ですか?

たとえば、人々がさまざまなことに投票できる Web アプリを作成したいと考えています。人々が何度も何度も投票しないようにするために、誰がどの投票に投票したかを追跡したいと考えています。(私は意図した使用例を提供していますが、主に一般的な実装に関心があります)

すでに書かれたオンラインのガイドや、これに関する他の優れたリソースを知っている人はいますか?

IF **関連性がある場合は、db アクセスに EF4 を使用しています (メンバーシップが他のデータにどのように関連しているかのみについて、EF および/または db アクセスの支援を直接必要としません)。現時点では、各データベースに GoDaddy が提供するスペースがあるため、メンバーシップを MsSQL に保存し、残りのデータを MySQL に保存することを計画しています。

4

1 に答える 1

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

于 2012-06-29T06:09:19.067 に答える