我有一个现有的 ASP.NET Web 窗体站点,我正在升级到 ASP.NET MVC4 Web 应用程序。
看起来应该可以将我现有的会员数据库与SimpleMembershipProvider
默认情况下使用的 MVC4 Web 应用程序一起使用。
问题是 SimpleMembershipProvider 期望该UserId
列的类型为int
,而我现有的数据库使用guid
.
这是我的相关部分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
's)作为成员数据库?
作为第二个问题:我想我可以将UserId
列更改为int
; 有没有人预见到任何问题,或者知道最好的方法?
这是我能找到的使用UserId
类型的最佳线索:http GUID
: //aspnet.uservoice.com/forums/41201-asp-net-mvc/suggestions/3573751-use-generic-types-for-userid-in-简单会员-