既存の ASP.NET Web フォーム サイトがあり、ASP.NET MVC4 Web アプリケーションにアップグレード中です。
SimpleMembershipProviderMVC4 Web アプリがデフォルトで使用する既存のメンバーシップ データベースを使用できるようです。
問題は、既存のデータベースUserIdが.intguid
my の関連部分は次のweb.configとおりです。
<membership defaultProvider="SqlMembershipProvider">
<providers>
<remove name="SqlMembershipProvider"/>
<add
name="SqlMembershipProvider"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
applicationName="/"
maxInvalidPasswordAttempts="10"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
たとえば、パスワードを変更しようとすると、次のようになりますRuntimeBinderException。
「タイプ 'System.Guid' を 'int' に変換できません」.
私の主な質問は次のとおりです。理想的には、既存のデータベースをそのまま維持し、MVC Web アプリをそれと連携するように構成したいと考えています。MVC4 Web アプリを構成して、既存のデータベース (を含むGUID UserId) をメンバーシップ データベースとして使用するにはどうすればよいですか?
UserId二次的な質問として、列をint;に変更できると思います。誰かがそれに関する問題を予見していますか、それについて最善の方法を知っていますか?
UserIdこれは、タイプを使用して見つけることができる最高のリードでしたGUID: http://aspnet.uservoice.com/forums/41201-asp-net-mvc/suggestions/3573751-use-generic-types-for-userid-in-シンプルメンバーシップ