假设我在数据库中为每个用户存储一个整数,表示其分配的权限。存储的数字是与每个分配的权限相关联的两个权力的总和。
检查是否授予某个权限(在VBScript / ASP中,或一般情况下),最简单的方法是什么?我最好的想法是将整数转换为二进制字符串并检查我想要的位,但我觉得有一个更好的解决方案(我还没有意识到它感到内疚。)
答案 0 :(得分:1)
DIM ADMIN as Integer = 128
DIM UserPermissionCode as Intger
if (UserPermissionCode and ADMIN) = ADMIN Then
' user is an admin
endif
这只是对VB.NET语法的猜测。这是C#中正确的版本
[Flags]
enum Permissions
{
User = 0x01;
PowerUser = 0x02;
Admin = 0x80
}
Permissions UserCode;
if (UserCode & Permissions.Admin == Permissions.Admin)
{
// user is admin
}