J'ai besoin un aperçu sur la façon de configurer une application Web ASP.NET MVC 3 où les utilisateurs sont connectés de deux manières:ASP.NET MVC 3 + authentification Windows + Base de données Connexion chèque
- Ils sont une partie du domaine (authentification Windows)
- utilisateur de l'application de table/magasin dit qu'ils ont accès à l'application
pour gérer la première exigence que je suis en train de l'élément authenication à Windows dans le web.config:
<authentication mode="Windows" />
Le second est celui qui est un peu plus délicat. Ma pensée actuelle était d'utiliser l'événement HttpApplications AuthenticationRequested. Donc, le code pourrait ressembler à ceci:
void MvcApplication_AuthenticateRequest(object sender, EventArgs e)
{
var formsAuthTicket = GetFormsAuthTicket();
if (formsAuthTicket == null || formsAuthTicket.Expired)
{
var userHasAccess = true; //TODO: Ask the someone if the user has access
if (userHasAccess)
{
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1,
HttpContext.Current.User.Identity.Name,
DateTime.Now,
DateTime.Now.AddMinutes(1),
true,
HttpContext.Current.User.Identity.Name);
string encTicket = FormsAuthentication.Encrypt(authTicket);
this.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
this.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
}
else
throw new HttpException(401, "User is not authorized");
}
}
Des pensées?
Le filtre d'authentification serait trop tard dans le jeu. L'autorisation est généralement utilisée pour vérifier que l'utilisateur actuel a accès à un contrôleur/une action donné. –
Je ne vois pas de différence entre l'accès à tous les contrôleurs et l'accès à l'application si vous n'avez aucune ressource dans votre application à laquelle l'accès n'est pas contrôlé par ASP.NET MVC – xelibrion