加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:28:36 所属栏目:asp.Net 来源:网络整理
导读:我正在使用DropCreate DatabaseAlways初始化程序,因此每次启动应用程序时都会销毁我的数据库(至少我希望如此).有趣的是我仍然认为自己已登录.我通过了Authorize属性并可以执行危险的操作.这可能是因为之前测试的剩余cookie. 我的应用程序的注册/登录部分是未
我正在使用DropCreate DatabaseAlways初始化程序,因此每次启动应用程序时都会销毁我的数据库(至少我希望如此).有趣的是我仍然认为自己已登录.我通过了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看起来很无用.我可以删除用户的帐户,他或她不受影响.如果我错了,应该采取哪些不同的做法?

解决方法

如果要真实地检查用户是否尚未删除,则只需查阅数据库即可.

请注意,用户和管理员同时工作.这意味着用户可以在经过身份验证后一秒钟内删除.一个cookie甚至可以是一两秒钟(!),用户可能刚被删除.

在一个最悲观的场景中,用户键入有效的用户名和密码并成功登录并在以后的一个请求中获得“抱歉,您的帐户已被删除”(因为该帐户实际上已被删除).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读