C# 通知用户ASP.NET MVC 4 simplemembership simplerole角色不足
我使用ASP.NET MVC4 SimpleMembership和SimpleRoleProvider在公开某些方法之前确定授权 例如:C# 通知用户ASP.NET MVC 4 simplemembership simplerole角色不足,c#,asp.net-mvc,simplemembership,C#,Asp.net Mvc,Simplemembership,我使用ASP.NET MVC4 SimpleMembership和SimpleRoleProvider在公开某些方法之前确定授权 例如: [Authorize(Roles = "Admin,Corporate")] public ActionResult Edit(int id = 0) { //some code return View(model) } 如果用户不是“管理员”或“公司”角色(或其会话已过期),则会将其正确发送到/Account/Login页面 然而,一位
[Authorize(Roles = "Admin,Corporate")]
public ActionResult Edit(int id = 0)
{
//some code
return View(model)
}
如果用户不是“管理员”或“公司”角色(或其会话已过期),则会将其正确发送到/Account/Login页面
然而,一位测试人员提出了一个很好的观点,即在这个登录页面上,没有提示用户为什么被发送到这里。如果他们只是没有授权访问他们试图访问的页面,他们就会一次又一次地登录,并认为网站已经坏了
通常,我会向模型中添加一个属性,或者在url中传递一个可选参数,其中包含一条消息,例如
You do not have adequate permissions to access that page.
Please log in as an administrator.
或者类似的东西。但是,由于筛选发生在他们进入方法之前,我将在何处/如何添加消息?现在您正在泄漏信息。A) 该页面存在B)有一个管理员角色。实现这一点的更好方法是首先不允许用户执行任务,例如在用户登录时不发送完整菜单,这样他们甚至不知道链接存在。好的,但用户确实具有管理员或公司角色是一种常见的使用情况,他们的会话还没有过期(因此他们可以浏览站点),但是SimpleRoleProvider忘记了他们的角色(确实发生了一些事情)。当他们进入登录页面时,他们仍然会对为什么必须再次登录感到困惑。不向他们解释这一点是令人困惑的。我是否应该进入控制器,尝试检查他们的角色并从那里重定向?