使用 ASP.NET MVC4 WebSecurity.ConfirmAccount(string token) 的 long 到 int 转换异常
long to int conversion exception with ASP.NET MVC4 WebSecurity.ConfirmAccount(string token)
这似乎让我感到困惑。我正在使用 MVC4 Simple membership 只是为了帮助自动化我的帐户流程。一切似乎都正常,除非我调用 WebSecurity.ConfirmAccount(string token) 和 WebSecurity.ResetPassword(string token, string newPassword) 方法。当使用为用户生成的正确令牌传递时,方法 throw 和 exception of long to in conversion error 但执行时没有错误,当使用错误的令牌传递时 return false 。我有没有搞错?
您不能将类型 long
转换为 int
,因为 long
从内存中保留 64 位,而 int
从内存中保留 32 位。因此,尝试将 long
转换为 int
将导致异常。
听起来您的 UserId
列是作为 bigint
而不是 int
创建的。 WebMatrix.WebData.SimpleMembershipProvider
期望该列是 int
:
这似乎让我感到困惑。我正在使用 MVC4 Simple membership 只是为了帮助自动化我的帐户流程。一切似乎都正常,除非我调用 WebSecurity.ConfirmAccount(string token) 和 WebSecurity.ResetPassword(string token, string newPassword) 方法。当使用为用户生成的正确令牌传递时,方法 throw 和 exception of long to in conversion error 但执行时没有错误,当使用错误的令牌传递时 return false 。我有没有搞错?
您不能将类型 long
转换为 int
,因为 long
从内存中保留 64 位,而 int
从内存中保留 32 位。因此,尝试将 long
转换为 int
将导致异常。
听起来您的 UserId
列是作为 bigint
而不是 int
创建的。 WebMatrix.WebData.SimpleMembershipProvider
期望该列是 int
: