C# 如何在ASP.NET MVC3中表示不同的产品级别和功能访问?

C# 如何在ASP.NET MVC3中表示不同的产品级别和功能访问?,c#,model-view-controller,asp.net-mvc-3,C#,Model View Controller,Asp.net Mvc 3,在我开始学习ASP.NET MVC3的旅程之前,我想尝试获得soem对我将遇到的问题的建议。如果我的应用程序具有不同的用户/产品级别,导致不同的用户能够执行不同的功能(例如,用户已经注册了产品的基本级别,因此他们无法上传音频,而更高“层”的用户可以),那么有没有建议我如何干净地处理此问题 示例1:让模型或控制器执行X,并为每个产品级别使用不同的Y或Z 示例2:在视图中具有内联标记,该视图根据助手方法的结果显示“上层”角色可用的功能 我在想,也许有一种方法可以拥有不同的视图和/或模型,并根据一些标

在我开始学习ASP.NET MVC3的旅程之前,我想尝试获得soem对我将遇到的问题的建议。如果我的应用程序具有不同的用户/产品级别,导致不同的用户能够执行不同的功能(例如,用户已经注册了产品的基本级别,因此他们无法上传音频,而更高“层”的用户可以),那么有没有建议我如何干净地处理此问题

示例1:让模型或控制器执行X,并为每个产品级别使用不同的Y或Z

示例2:在视图中具有内联标记,该视图根据助手方法的结果显示“上层”角色可用的功能

我在想,也许有一种方法可以拥有不同的视图和/或模型,并根据一些标准确定哪一个连接到请求


谢谢,如果您有任何建议,我们将不胜感激。

这两个地方都应该有。例如,如果您的免费层不允许自定义域,而您的付费层则允许,那么仅仅删除域名的
输入将是不够的:用户可能能够手工编写一个POST请求,并包含缺少的
帐户。customDomain
值。因此,您还必须检查控制器中的层功能

至于在何处以及如何指定这些级别限制,我目前也面临着这个问题。我想到的是一个简单的XML文件,其中我指定了层功能:

<tiers>
  <defaults allow-custom-domain="false" allow-branding="false">
  <tier name="free" upload-limit="10MB" />
  <tier name="platinum" allow-custom-domain="true" allow-branding="true" upload-limit="2GB" />
</tiers>


然后是一个simpe C#类,用于封装对该规范的访问,您已经准备好了。

您可以在该xml上放置一个依赖于文件的缓存,这样每当您更新xml时,代码都会知道它的更改,您不必每次都读取它。看见