在我的ASP MVC项目中,我实现了OWIN CookieAuthentication。除未经授权的请求外,所有程序都运行正常。 例如,考虑流动:Owin未经授权的请求未注销用户
- 用户登录
- 用户点击了该用户无权访问的端点。
通过限制:
[Authorize(Roles = "SomeRoleUserDontHaAssigned")]
public ActionResult SomeAction()...
发生这种情况时用户被重定向到帐户/登录路径(这是确定),但他没有得到注销(这是我所期望的)。
这是预期的行为,所以我应该实现我自己的AuthorizeAttribute,我应该手动删除cookie(或调用Account/SignOut)?或者我错过了什么?
你为什么期望这样的事情?作为用户,如果我每次遇到无法访问的资源时都必须重新登录,我会感到有点生气。你可以通过自定义的AuthorizeAttribute来做到这一点,但是你应该怎么做? –
我明白你的观点。我应该详细说明一点:从用户体验角度来看,我完全同意你的看法。我真正想说的是:如果它已经重定向到登录页面,那么(并且只有这样)我才会期望首先注销用户,因为登录已登录用户的是什么?这不是很奇怪吗?另一方面,完全正确的解决方案当然是重定向到一些自定义的“访问被拒绝”页面。顺便说一句,那是在哪里设置的? –
我无法完全理解您的问题,您如何期望用户在登录受限制的页面时应该注销?用户登录的唯一方式是在Cookie死亡或者通过身份验证管理器(authenticationManager.SignOut) – SaadK