2010-12-04 53 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()方法的一堆方法 - 有一堆這樣的方法,但沒有必要全部填充它們 - 只需完成與應用程序相關的方法,然後保持原樣。