2011-09-29 50 views
0

我是一名正在研究与SharePoint有一些共同点的网站的学生。我使用ASP.NET MVC 3创建Intranet站点,以便人员可以通过Active Directory进行身份验证。我无法实现这些要求:使用角色进行CRUD限制的Windows身份验证

  1. 用户可以定义角色(而不是AD组)并将Active Directory用户链接到这些角色。
  2. 上传文档或文件夹时,用户可以授予角色对文档的CRUD访问权限,或者可以从中限制角色。

请帮助我或者给我一个链接到一个很好的文章:)

+0

你使用的数据库我假设?你如何管理它?先编码还是生成? – Frederiek

+0

尚未决定,我刚刚开始。我将使用EF和MS SQL,但我不知道它是否会先代码或生成... – Ians

+0

然后我要给你一个示例SQL代码,我将如何将这些东西保存在数据库中 – Frederiek

回答

0
CREATE TABLE role 
(
    role NVARCHAR(50) NOT NULL PRIMARY KEY, 
    create BIT NOT NULL, 
    read BIT NOT NULL, 
    update BIT NOT NULL, 
    delete BIT NOT NULL 
) 

CREATE TABLE item 
(
    id INT NOT NULL PRIMARY KEY, 
    name NVARCHAR(50) NOT NULL, 
    id_parent INT, 
    CONSTRAINT FK_item_item FOREIGN KEY(id_parent) REFERENCES item(id) 
) 

CREATE TABLE user 
(
    id INT NOT NULL PRIMARY KEY, 
    adUserName NVARCHAR(50) NOT NULL, 
    role NVARCHAR(50) NOT NULL, 
    CONSTRAINT FK_user_role FOREIGN KEY(role) REFERENCES role(role) 
) 

CREATE TABLE user_item_rights 
(
    id_user INT NOT NULL, 
    id_item INT NOT NULL, 
    create BIT NOT NULL, 
    read BIT NOT NULL, 
    update BIT NOT NULL, 
    delete BIT NOT NULL, 
    CONSTRAINT PK_user_item_rights PRIMARY KEY(id_user,id_item), 
    CONSTRAINT FK_user_item_rights_user FOREIGN KEY(id_user) REFERENCES user(id), 
    CONSTRAINT FK_user_item_rights_item FOREIGN KEY(id_item) REFERENCES item(id) 
) 

这应该给你的,你怎么能实现这个想法。你也可以将它翻译成课程。你也可以实现CRUD继承等等,或者定义一个role_item_right表。 在我的想法中,user_item_rights覆盖角色中的默认设置。

相关问题