Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通知用户ASP.NET MVC 4 simplemembership simplerole角色不足_C#_Asp.net Mvc_Simplemembership - Fatal编程技术网

C# 通知用户ASP.NET MVC 4 simplemembership simplerole角色不足

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页面 然而,一位

我使用ASP.NET MVC4 SimpleMembership和SimpleRoleProvider在公开某些方法之前确定授权

例如:

[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忘记了他们的角色(确实发生了一些事情)。当他们进入登录页面时,他们仍然会对为什么必须再次登录感到困惑。不向他们解释这一点是令人困惑的。我是否应该进入控制器,尝试检查他们的角色并从那里重定向?