[英]Conditional/limited access in a controller/view? (MVC2)
我目前在我的网站上使用两个角色,作者和管理员。 作者无法访问用户管理功能。 但是,他们应该能够编辑其个人资料的某些部分。 管理员当前可以编辑用户个人资料的所有部分。 例如:
employee ID [admin]
display name [author,admin]
roles [admin]
我想在可能的地方重用代码。 我不确定最好的解决方案是什么。 有两件事要处理
我认为最好通过自定义Authorize属性(我已经有一个可以进一步扩展的属性)实现了#1。 如果您有更好的方法,请分享。 #2我不确定,查看模型吗? 我使用部分类为用户绑定了允许的字段,该类对于每个角色都是不同的。
针对#1的解决方案已经确定,您需要使用AuthorizeAttribute
。
对于#2,您可以只在特定用户渲染的地方进行安全修剪。
视图中的一些伪代码(或将其移至部分视图):
if administrator
render employee ID text box
if administrator || author
render display name text box
if administrator
render roles check list
因此,您将需要控制如何确定用户是否处于“角色”。 您可以使用ASP.NET的Membership Provider或自己创建一些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.