2010-12-04 5 views
1

Comment puis-je ajouter un accès limité à seulement 1 utilisateur spécifique a accès à 1 répertoire spécifique et personne d'autre ne peut y accéder que lui? J'ai regardé la chose de web.config mais cela ne fonctionnera pas.ASP.NET MVC - Accès utilisateur pour le répertoire

Donc, fondamentalement, ce que je suis en train de est:

personne crée utilisateur => new user => nouveau répertoire (accès uniquement pour le nouvel utilisateur et personne d'autre).

Merci d'avance.

Répondre

1

L'application sur laquelle je travaille actuellement utilise la décoration Autoriser conjointement avec les fournisseurs d'appartenance et de rôle (tous deux personnalisés) pour gérer l'accès aux pages de mon site MVC, par exemple.

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

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

Je trouve cela est extrêmement flexible que vous pouvez avoir du public (sans décoration) tout utilisateur connecté [Authorize] ou des rôles & utilisateurs. Personnellement, je ne construirais jamais une application autorisée sur Users - Roles est une option beaucoup plus extensible (même si elle ne contient qu'un seul utilisateur pour le moment) il y a deux raisons principales pour lesquelles je ne ferais pas ça: les utilisateurs deviennent trop compliqués app et d'autre part ajouter un utilisateur à la décoration nécessite une recompilation/redéploiement de l'application alors qu'associer un utilisateur à un rôle dans la plupart des situations est généralement une association de base de données que la logique métier de l'application gère à l'exécution.

Dans votre web.config vous configurez quelque chose de semblable à ce à utiliser les fournisseurs personnalisés:

<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> 

Ensuite, vous créez des classes qui héritent les fournisseurs:

using System.Web.Security; 

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

Vous finirez avec un tas de méthodes avec throw NotImplementedException() - il y en a beaucoup, mais il n'est pas nécessaire de les remplir - complétez simplement celles qui sont pertinentes pour votre application et laissez le reste tel quel.

Questions connexes