2010-12-04 55 views
1

如何将有限的访问权限添加到只有1个特定用户有权访问1个特定目录,而其他人无法访问它?我看过web.config的东西,但不会工作。ASP.NET MVC - 目录的用户访问

所以基本上我想要的是:

人创建用户=>新用户=>新目录(仅适用于新用户并没有别的访问)。

在此先感谢。

回答

1

我目前正在使用的应用程序使用Authorize decoration与成员资格和角色提供程序(都是自定义)一起管理对我的MVC网站中的页面的访问,例如

[Authorize(Users="MyUsername")] 
public ActionResult Banking() 
{ 
    return View(); 
} 

[Authorize(Roles="SysAdmin, BusinessOwner")] 
public ActionResult Banking() 
{ 
    return View(); 
} 

我觉得这是非常灵活,你可以有公共(无饰)在用户[授权]或角色&用户登录任何。就我个人而言,我永远不会构建一个授权给用户的应用程序 - 角色是一个更加可扩展的选项(即使它目前只包含一个用户)有两个主要原因,我不会这样做 - 用户变得笨拙应用程序,然后在装饰中添加用户需要重新编译/重新部署应用程序,而在大多数情况下将用户关联到角色通常是应用程序的业务逻辑在运行时处理的数据库关联。

在你的web.config您设置类似这样使用自定义提供的东西:

<system.web> 
<membership defaultProvider="MyMembership" userIsOnlineTimeWindow="30"> 
    <providers> 
    <clear/> 
    <add name="MyMembership" type="MyDAL.MyMembership, MyDAL"/> 
    </providers> 
</membership> 
<roleManager defaultProvider="MyRole" enabled="true" cacheRolesInCookie="true"> 
    <providers> 
    <clear/> 
    <add name="MyRole" type="MyDAL.MyRole, MyDAL" /> 
    </providers> 
</roleManager> 

然后创建继承提供商类:

using System.Web.Security; 

namespace MyDAL 
{ 
    class MyMembership : MembershipProvider//[ctrl + .] to create stubs 
    { 
     //Use Visual Studio to generate all the MembershipProvider stubs [ctrl + .] 
    } 
} 

您将结束使用throw new NotImplementedException()方法的一堆方法 - 有一堆这样的方法,但没有必要全部填充它们 - 只需完成与应用程序相关的方法,然后保持原样。