0

昨日VisualStudio2012(RTM、mytt DreamSparkアカウント経由)をインストールし、デモMVCサイトを作成しました(Azureでサポートされることを希望しているため.NET 4.0を使用)。

プロジェクトの調査を開始し、外部サービス(Facebook、Twitter、Windows Live、Google)を使用するための組み込みオプションに加えて、メンバーシップスキーマ全体が変更されていることがわかりました。

新しい構造には4つのテーブルが含まれています(UserProfileは最初のコードのアプローチであるEntity Frameworkテーブルです)。テーブルプレフィックスは「webpages_」ですが、適切なMVC4サイトであることに注意してください。

AccountModels.csファイルを開いて、それも変更されていることを確認しました。

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;

namespace MyGuestbook.Models
{
    public class UsersContext : DbContext
    {
        public UsersContext()
            : base("DefaultConnection")
        {
        }

        public DbSet<UserProfile> UserProfiles { get; set; }
    }

    [Table("UserProfile")]
    public class UserProfile
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public string UserName { get; set; }
    }

    public class RegisterExternalLoginModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        public string ExternalLoginData { get; set; }
    }

    public class LocalPasswordModel
    {
        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Current password")]
        public string OldPassword { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "New password")]
        public string NewPassword { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm new password")]
        [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

    public class LoginModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [Display(Name = "Remember me?")]
        public bool RememberMe { get; set; }
    }

    public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

    public class ExternalLogin
    {
        public string Provider { get; set; }
        public string ProviderDisplayName { get; set; }
        public string ProviderUserId { get; set; }
    }
}

だから私は尋ねたいと思います:-これは新しいユーザー構造(asp_regsql.exeから生成されたもの)ですか、それともテンプレート固有の構造ですか?-誰かが新しい構造とそれと統合する方法についてのドキュメントを持っていますか?-古い構造の「古い」プロジェクト(MVC 3プロジェクトなど)を新しいプロジェクトに移行する方法を知っている人はいますか?

ありがとう!:)

4

1 に答える 1

1

私の質問に答える記事を見つけました。

編集: 突然の変更の理由: MicrosoftがデフォルトのASP.NET MVC 4テンプレートを変更したため、変更が加えられました。デフォルトのアカウント管理を提供する標準の「インターネットアプリケーション」テンプレートが変更され、WebMatrix2ヘルパーが使用されるようになりました。AccountControllerはSimpleMembership、サードパーティの統合をサポートし、EntityFrameworkのコードファーストアプローチを使用できるようにするクラスを使用するために完全に書き直されました。

古いメンバーシッププロバイダーの使用 私が読んだ限り、あなたを使用するSimpleMembershipクラスExtendedMembershipProviderはデフォルトのユニバーサルプロバイダーを使用できず、組み込みプロバイダーを使用するか、ExtendedMembershipProviderカスタムプロバイダーを作成する必要があるためです。

詳細については、こちらをご覧ください: 新しいASP.NETWebFormsおよびASP.NETMVC4テンプレートを使用したメンバーシッププロバイダーの実装

乾杯!

于 2012-09-04T12:43:43.740 に答える