既存の ASP.NET Web フォーム サイトがあり、ASP.NET MVC4 Web アプリケーションにアップグレード中です。
SimpleMembershipProvider
MVC4 Web アプリがデフォルトで使用する既存のメンバーシップ データベースを使用できるようです。
問題は、既存のデータベースUserId
が.int
guid
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-シンプルメンバーシップ