我正在使用DropCreateDatabaseAlways
初始化程序,因此每次启动应用程序时我的数据库都会被破坏(至少我希望如此)。有趣的是我仍然认为自己已登录。我通过了Authorize
属性并且可以做危险的事情。这可能是因为之前测试的剩余 cookie。
我的应用程序的注册/登录部分是未触及的 MVC 4 Internet 应用程序模板。ASP.NET 不应该根据保存在数据库中的用户检查 cookie 值吗?WebSecurity.IsAuthenticated
返回 true 并WebSecurity.CurrentUserName
返回名称。唯一按预期工作的是WebSecurity.CurrentUserId
返回-1。我是新手,所以我只能猜测这是因为UserId
没有存储在 cookie 中,必须从数据库中检索。
我对吗?如果是这样,这是否意味着我应该始终使用WebSecurity.CurrentUserId
来确定用户是否已登录?WebSecurity.IsAuthenticated
在那种情况下User.Identity.IsAuthenticated
似乎毫无用处。我可以删除用户的帐户,他或她不受影响。如果我错了,应该怎么做?