小编Kon*_*ina的帖子

ASP.NET MVC对不存在的用户进行身份验证和授权

我正在使用DropCreateDatabaseAlways初始化程序,因此每次启动应用程序时都会销毁我的数据库(至少我希望如此).有趣的是我仍然认为自己已登录.我获得了传递Authorize属性并可以执行危险的操作.这可能是因为之前测试的剩余cookie.

我的应用程序的注册/登录部分是未触及的MVC 4 Internet应用程序模板.ASP.NET不应该检查保存在DB中的用户的cookie值吗?WebSecurity.IsAuthenticated返回true并WebSecurity.CurrentUserName返回名称.唯一按预期工作的是WebSecurity.CurrentUserId返回-1.我是新手,所以我只能猜测这是因为UserId没有存储在cookie中,必须从数据库中检索.

我对吗?如果是这样,是否意味着我应该总是WebSecurity.CurrentUserId用来确定用户是否已登录?WebSecurity.IsAuthenticated并且User.Identity.IsAuthenticated似乎在这种情况下,很没用.我可以删除用户的帐户,他或她不受影响.如果我错了,应该采取哪些不同的做法?

asp.net asp.net-mvc asp.net-membership simplemembership

5
推荐指数
1
解决办法
1005
查看次数