【问题标题】:ASP.NET WEB API Multiple InterfacesASP.NET WEB API 多种接口
【发布时间】:2014-02-19 22:04:30
【问题描述】:
我正在设计带有两个接口的 ASP.NET WEB API 服务。第一个界面是只读的,第二个是完全支持 CRUD 的管理界面(用于 MVC 应用程序)。有谁知道我在哪里可以获得有关此类设置、任何教程、思考、示例设计文档的更多信息?
是否值得将它们分成两个接口或保持相同?但问题是,在只读模式下,我为每个对象公开 2-3 个属性,而对于管理员来说,有 10-15 个?
WCF 或设计规范的类似设置也可以。
【问题讨论】:
标签:
asp.net-mvc
wcf
service
interface
asp.net-web-api
【解决方案1】:
如果我了解您想要做什么,我建议您不要使用一个 URL,即 \dataStuff\dataView 拆分为另一个视图,也许只有管理员有权访问的 \dataStuff\edit\ 可以这样做:
[Authorize(Roles = "Administrators")]
public ActionResult edit()
{
return View();
}
然后在您查看的每个数据元素旁边,通过使用 User.IsInRole 将以下内容添加到 ONLY admin's
@foreach (var item in Model.dataTable)
{
@*
write a value from the data table here
*@
@Html.ActionLink("edit", "edit").If(User.IsInRole("Administrators"))
<br/>
}
显然您不必像这样显示您的数据,我只是表明您在数据库的每个元素的末尾添加一个编辑 ActionLink IF 用户是管理员。
这使您的管理员可以像用户一样查看数据,并拥有他们需要的附加功能。代码重用优于具有管理员和非管理员两种状态的单个视图。
对不起,如果这不是最好的解释,对 MVC 来说相当新