Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 基于当前会话和计划限制URL_C#_Asp.net Mvc_Razor_Asp.net Mvc Routing - Fatal编程技术网

C# 基于当前会话和计划限制URL

C# 基于当前会话和计划限制URL,c#,asp.net-mvc,razor,asp.net-mvc-routing,C#,Asp.net Mvc,Razor,Asp.net Mvc Routing,我知道这可能取决于项目设置和其他一些事情,但我只是想知道在我的情况下,最佳实践是什么 我有一个web应用程序,它有3个计划:免费、专业和高级。在免费计划中,我想将用户限制为特定的URL 用户可以更改计划,因此如果他们坚持免费计划,那么他们就看不到其他URL。但是如果他们升级,然后降级,他们可能访问了其他一些URL 在我所有的控制器中,我都有我需要的关于用户的所有信息,例如他们所在的计划和他们试图查看的URL 我对这类事情不是很熟悉,所以我的第一个想法是在一个URL一个URL的基础上控制它。例如,

我知道这可能取决于项目设置和其他一些事情,但我只是想知道在我的情况下,最佳实践是什么

我有一个web应用程序,它有3个计划:免费、专业和高级。在免费计划中,我想将用户限制为特定的URL

用户可以更改计划,因此如果他们坚持免费计划,那么他们就看不到其他URL。但是如果他们升级,然后降级,他们可能访问了其他一些URL

在我所有的控制器中,我都有我需要的关于用户的所有信息,例如他们所在的计划和他们试图查看的URL

我对这类事情不是很熟悉,所以我的第一个想法是在一个URL一个URL的基础上控制它。例如,在自由计划用户无法查看的“我的控制器”操作中,检查他们使用的计划,如果是自由计划,则将他们重定向到404页面或其他任何页面


这是一种非常简单的方法,但我只是想知道是否有更好的方法可以做到这一点?

听起来您想向控制器中添加一种要求访问级别大于自由级别的方法,例如:

public ActionResult ViewForAllUsers() {
    return View();
}

[Authorize(Roles = "Prem, Pro")]
public ActionResult ViewForPremAndPro() {
    return View();
}

[Authorize(Roles = "Pro")]
public ActionResult ViewForProOnly() {
    return View();
}

与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。请看“.酷,谢谢你的更新。以后将尝试并跟进!