问题列表 - 第26916页

非RBAC用户角色和权限系统:具有属性的角色

目前,我们正在设计一个用户角色和权限系统在我们的Web应用程序(ASP.NET),它似乎是我们有一些情况下做不适合古典中基于角色的访问控制(RBAC) 。我将发布几个问题,每个问题都针对一个特定案例。这是我的第二个问题(第一个问题在这里:非RBAC用户角色和权限系统:检查用户的City)。

我们有以下情况:我们需要在Web应用程序中实现Manager角色。但是,管理者可以属于一个或多个公司(在我们为其创建此Web应用程序的一大批公司中)。假设有“公司A和B的经理”,“公司C的经理”等。

根据管理者所属的公司,他可以访问某些业务:例如,他只能与他所属的公司的客户进行通信。也就是说,“公司A和B的经理”只能与公司A和B的客户联系,而不能与公司C的联系人联系。他还可以查看公司A和B而不是C的客户的详细信息页面,等等。 。

看来这种情况属于RBAC。但是,事实并非如此。我们将需要创建一个具有Companies属性ManagerRole类 -也就是说,这不仅是一个权限集合的角色(如在传统的RBAC中一样),而且还有一个具有属性角色

这只是具有属性的角色的一个示例。还会有其他角色:例如,管理员角色也将属于许多公司,并且还将具有其他自定义属性。

这意味着我们将建立一个层次结构或角色类:


class Role – base class  
class ManagerRole : Role  
    List Companies  
class AdministratorRole : Role  
    List Companies  
    Other properties
Run Code Online (Sandbox Code Playgroud)

我们研究了纯RBAC及其在多个系统中的实现,没有发现具有层次结构或角色的系统,每个系统都具有自定义属性。在RBAC中,角色只是权限的集合。

我们可以使用具有属性的权限(例如ManagerPermission,AdministratorPermission)对案例进行建模,但这有很多缺点,主要是我们无法直接向用户分配“公司A和B的经理”这样的角色,但是必须创建一个包含公司A和B的ManagerPermission的角色。此外,从语言的角度来看,“经理”似乎是一个“角色”(在公司中的职位),而不是“权限”。

对此主题的任何想法以及该领域的任何经验将不胜感激!

谢谢。

asp.net asp.net-membership rbac

5
推荐指数
1
解决办法
1508
查看次数

c ++中的枚举类型

这有效:

enum TPriority 
{
    EPriorityIdle = -100,
    EPriorityLow = -20,
    EPriorityStandard = 0,
    EPriorityUserInput = 10,
    EPriorityHigh = 20
};

TPriority priority = EPriorityIdle; 
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

TPriority priority = -100;
Run Code Online (Sandbox Code Playgroud)

任何原因?

c++ enums

1
推荐指数
1
解决办法
321
查看次数

当警报在Perl中跳闸时,我应该如何清理挂孙子进程?

我有一个并行化的自动化脚本,需要调用许多其他脚本,其中一些脚本因为(错误地)等待标准输入或等待各种其他不会发生的事情而挂起.这不是什么大不了的事,因为我抓住那些惊慌失措的人.诀窍是在孩子关闭时关闭那些悬挂的孙子进程.我认为各种各样的咒语SIGCHLD,等待和过程小组都可以做到这一点,但是它们都会阻止而且孙子孙女都没有收获.

我的解决方案有效,但似乎不是正确的解决方案.我对Windows解决方案还不是特别感兴趣,但我最终也需要它.我的只适用于Unix,现在还可以.

我写了一个小脚本,它可以运行同时并行的子节点数和fork的总数:

 $ fork_bomb <parallel jobs> <number of forks>

 $ fork_bomb 8 500
Run Code Online (Sandbox Code Playgroud)

这可能会在几分钟内达到每用户进程限制.我发现的许多解决方案只是告诉你增加每用户进程限制,但我需要这个运行大约300,000次,所以这不会起作用.同样,重新执行等建议以清除流程表并不是我需要的.我想实际修复问题,而不是在它上面拍打胶带.

我抓取进程表寻找子进程并在处理程序中单独关闭挂起的进程SIGALRM,这需要死掉,因为其余的实际代码在此之后没有成功的希望.从性能角度来看,kludgey爬过进程表并不会让我烦恼,但我不介意不这样做:

use Parallel::ForkManager;
use Proc::ProcessTable;

my $pm = Parallel::ForkManager->new( $ARGV[0] );

my $alarm_sub = sub {
        kill 9,
            map  { $_->{pid} }
            grep { $_->{ppid} == $$ }
            @{ Proc::ProcessTable->new->table }; 

        die "Alarm rang for $$!\n";
        };

foreach ( 0 .. $ARGV[1] ) 
    {
    print ".";
    print "\n" unless $count++ % 50;

    my $pid = $pm->start and next; 

    local …
Run Code Online (Sandbox Code Playgroud)

unix perl kill alarm grandchild

12
推荐指数
2
解决办法
1876
查看次数

使用Javascript将大块HTML插入元素的最佳实践?

我正在构建一个Web应用程序(使用原型),需要在DOM中添加大量的HTML.其中大多数是包含具有各种属性的元素的行.

目前,我在变量中保留一行空白的HTML

var blankRow = '<tr><td>'
    +'<a href="{LINK}" onclick="someFunc(\'{STRING}\');">{WORD}</a>'
    +'</td></tr>';

function insertRow(o) {
    newRow = blankRow
        .sub('{LINK}',o.link)
        .sub('{STRING}',o.string)
        .sub('{WORD}',o.word);
    $('tbodyElem').insert( newRow );
}
Run Code Online (Sandbox Code Playgroud)

现在一切顺利,花花公子,但这是最好的做法吗?

当我更新页面上的代码时,我必须更新blankRow中的代码,因此插入的新元素是相同的.当我有40行HTML进入blankRow然后我也必须逃避它时,它变得很糟糕.

有没有更简单的方法?我想到了urlencoding,然后在插入之前解码它,但这仍然意味着一个blankRow和许多转义.

什么意思将是PHP等人的eof函数.

$blankRow = <<<EOF
text
text
EOF;
Run Code Online (Sandbox Code Playgroud)

这意味着没有逃脱但它仍然需要一个blankRow.

你在这种情况下做了什么?

解决了

在原型中使用DOMBuilder结束.不需要其他库:

$w('a div p span img table thead td th tr tbody tfoot input').each(function(e) {
        window['$' + e] = function() {
            return new Element(e, arguments[0]);
        }
});

newPart = $div({id: 'partition-4'})
    .insert( $p()
        .insert('<b>Stuff</b>')
    )
    .insert( $p({
        id: 'a-p'})
        .insert('<b>More stuff</b>')
    );

$('parentDiv').insert(newPart);
Run Code Online (Sandbox Code Playgroud)

见我的解决方案 …

html javascript ajax dom

18
推荐指数
2
解决办法
8123
查看次数

如何通过php页面传递session_id()?

当用户点击登录按钮(index.php)时,我正在调用chechlogin.php,我在这里检查loginId密码为 -

if($count==1)
{
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
$_SESSION['UserId'] = $myusername;
$_session['SessionId'] = session_id();
header("location:LoggedUser.php");
}
Run Code Online (Sandbox Code Playgroud)

LiggedUser.php中

<?php session_start();  //starting session
Run Code Online (Sandbox Code Playgroud)

if(!isset($ _ SESSION ['SessionId'])|| $ _SESSION ['SessionId'] ==''){header("location:index.php"); }?>

问题:它总是回到index.php页面,虽然我输入正确的用户名和密码.我认为session_id()工作不正常或??

php session sessionid

1
推荐指数
1
解决办法
6060
查看次数

Eclipse IDE上的Iphone App开发?

是否有可能在Windows中使用Eclipse IDE开发Iphone应用程序?请注意Windows平台有可能进行Iphone开发吗?任何的想法?

编辑:这个Cygwin工具这个博客怎么样

eclipse windows iphone

2
推荐指数
1
解决办法
3894
查看次数

FileInputStream用于通用文件系统

我有一个包含Java序列化对象的文件,如"Vector".我已将此文件存储在Hadoop分布式文件系统(HDFS)上.现在我打算在map任务中读取这个文件(使用方法readObject).我想

FileInputStream in = new FileInputStream("hdfs/path/to/file");
Run Code Online (Sandbox Code Playgroud)

因为文件存储在HDFS上,所以不会工作.所以我想到了使用org.apache.hadoop.fs.FileSystem类.但不幸的是它没有任何返回FileInputStream的方法.它只有一个返回FSDataInputStream的方法,但我想要一个输入流,它可以读取序列化的java对象,比如文件中的vector,而不仅仅是FSDataInputStream可以做的原始数据类型.

请帮忙!

java filesystems hdfs

8
推荐指数
1
解决办法
3639
查看次数

查找图表中的所有周期,redux

我知道这个问题有很多答案.但是,我发现它们中没有一个能够真正实现它.
有人认为一个循环(几乎)与强连通组件相同(s.在有向图中查找所有循环),因此可以使用为该目标设计的算法.
有人认为找到一个循环可以通过DFS完成并检查后端(s.文件依赖关系的boost图文档).

我现在想对是否可以通过DFS检测图中的所有循环并检查后沿有一些建议?
http://www.me.utexas.edu/~bard/IP/Handouts/cycles.pdf(在SO上找到)陈述了一种基于循环基础的方法.我个人而言,我觉得它不是很直观,所以我正在寻找一个不同的解决方案.

编辑:我最初的意见显然是错误的.S."Moron"的下一个回答.
初步意见:我的观点是它确实可以这样工作,因为DFS-VISIT(DFS的伪代码)刚刚进入尚未访问过的每个节点.从这个意义上讲,每个顶点都表现出一个潜在的循环开始.此外,由于DFS每次访问每个边缘,因此也会覆盖通向循环起点的每条边.因此,通过使用DFS和后沿检查,确实可以检测图中的所有周期.注意,如果存在具有不同数量的参与者节点的循环(例如,三角形,矩形等),则必须进行额外的工作以区分每个循环的实际"形状".

graph-theory graph depth-first-search triangle-count

7
推荐指数
2
解决办法
1万
查看次数

如何制作类似于gmail弹出窗口的网络聊天应用程序?

正如您在gmail中看到的那样,当您单击屏幕右下角时,会出现一个小弹出窗口.有趣的是,即使我们从一个网页导航到另一个网页,这个弹出窗口仍保持打开并处于同一位置.如何才能做到这一点?它看起来不像是不同的页面.它是完全不同的页面吗?还是同一页面?

提前致谢 :).希望这些主持人不要关闭我的问题.上次我问了一些对我有用的东西时,他们对我投了反对,并且关闭了我的问题.

chat

1
推荐指数
1
解决办法
2727
查看次数

如何使用Python的Logging模块写入日志文件中的上一行?

这里的长期潜伏者,终于摆脱了木制品.

基本上,我正在尝试做的是让我的记录器将这样的数据写入日志文件:

Connecting to database . . . Done.
Run Code Online (Sandbox Code Playgroud)

我想要'连接数据库'...'在调用函数时写入,并在函数成功执行后写入'完成'.

我正在使用Python 2.6和日志记录模块.另外,我真的很想避免使用装饰器.非常感激任何的帮助!

python logging

3
推荐指数
2
解决办法
1176
查看次数