去除权限
问题:想去除某个页面的权限,使其Public Access:
解决方案:
- 将XYZRow里的改为
[ReadPermission("*")]
[ModifyPermission("*")]
其中\("\*"\) means users including unauthenticated ones.
- XYZEndpoint里的改为:
[ConnectionKey(typeof(MyRow))]
去除ServiceAuthorize\(typeof\(MyRow\)\)
- XYZPage里的PageAuthorize去掉
知识点
继承自PermissionAttributeBase的特性:
ReadPermission、ModifyPermission、InsertPermission、UpdatePermission、DeletePermission
Page和Endpoint访问控制特性:
PageAuthorize:Page的访问权限是读取XYZPage.cs文件Index操作的PageAuthorize特性,这是一个MVC页面控制器。请确保你将此设置为用户权限。
ServiceAuthorize:
这些特性可以在下面类型中使用:
XYZRow(可设置Read, Write, Insert, Update, Delete权限)
XYZPage及操作方法(PageAuthorize)
XYZEndpoint及服务操作(ServiceAuthorize)
在row中修改访问许可键(permission keys),但是当打开页面时得到错误且没有显示记录:
XYZEndpoint.cs也需要有[ServiceAuthorize("SomePermission")]特性。这是为了提供中等级别的安全(secondary level security)。在Row中替换访问键。
我们的控制器类有ServiceAuthorize特性:如果使用时不带参数(如[ServiceAuthorize()]),此属性也会检查该用户是否已登录。当你把访问许可键(permission key)字符串传递给它时,它会检查该用户是否已登录且具有该权限。
虽然[PageAuthorize]将用户重定向到登录页面,但如果用户没有权限,ServiceAuthorize返回一个更适合的未授权的服务错误。