Question

Je suis en train d'installer un pour un site « bêta privée » que je travaille. Le site utilise id ouvert. Je ne veux pas que quelqu'un pour parcourir les pages même si elles ne font pas partie de la version bêta. Quelle est la meilleure façon de mettre en œuvre ce? Toutes les suggestions?

Par exemple:

Lorsque le site sera en ligne, les utilisateurs vont http://www.mydomain.com qui sera ne les oblige pas à se connecter.

Pour la beta je veux limiter l'accès. Les utilisateurs qui vont http://www.mydomain.com seront redirigés vers une page de connexion. Toute personne essayant d'accéder PARTIE DU SITE qui n'est pas authentifié sera redirigé vers la page de connexion.

Je pourrais tenir [Authorize] attributs sur mes actions de contrôleur, mais cela semble stupide.

Était-ce utile?

La solution

Si vous utilisez ASP.NET MVC, il est livré avec l'authentification / autorisation de la boîte. Vous devriez pouvoir l'utiliser pour l'authentification d'installation sur votre site.

Sinon, vous pouvez application de configuration des paramètres du serveur - IIS vous permet de nom d'utilisateur / mot de passe de configuration sur un site spécifique, il est au service, peu importe ce que l'application effective peut faire. Si vous avez accès au serveur d'applications cela pourrait être la meilleure solution.

Si vous utilisez IIS6, vous pouvez l'autorisation d'installation facilement. Faites un clic droit sur votre site> Propriétés> onglet Sécurité de répertoire> Authentification et contrôle d'accès> Modifier et entrez un nom d'utilisateur / passwd de votre choix. Fait.

Autres conseils

La vraie question est de savoir comment sont-ils invités à la bêta privée?

Vous pourriez installer un mot de passe qui tombe un cookie tout comme serverfault.com fait.

ou

Si vous savez qui vous invitez: vous pouvez les ajouter au système avant la main en utilisant l'e-mail / login informations que vous connaissez déjà les (en supposant que vous les invitez par e-mail)

Je l'ai mis en place une fonction dans une application web il y a un moment où nous allons la possibilité de bloquer l'accès au site complet sauf si l'utilisateur est un administrateur (qui, dans notre cas signifie que le compte utilisateur a été membre d'un groupe spécifique dans active Directory).

Il était basé sur deux choses. Tout d'abord, toutes les pages de l'application Web ne sont pas directement héritée de la classe de page, mais d'une classe de page personnalisée dans notre application web. Deuxièmement, nous avons eu une valeur comme celui-ci dans la section appSettings du fichier web.config:

<add key="adminaccessonly" value="0" />

La classe de page personnalisée vérifierait cette valeur lors du chargement. Si ce n'était pas 0 il rediriger vers une page (qui n'a pas hérité de la même classe de page personnalisée, cependant) informer l'utilisateur que « le site n'est pas disponible en ce moment ». Si la valeur est 0 la page chargerait comme d'habitude.

Dans cette application, nous avons utilisé cela pour être en mesure de prendre le site « hors ligne » lorsque nous avons déployé une nouvelle version, nous donnant un peu de temps pour vérifier que tout était bien avant que nous laissons les utilisateurs à nouveau.

La meilleure façon est le système d'invitation (basé sur le code d'invitation) ou manuellement l'accès de confirmation après créer un profil dans votre système. imho

Ou vous pouvez héberger le site sur un serveur privé, et mettre en place un VPN pour l'utiliser. En fonction de vos ressources et besoins cela peut être le moyen le plus simple et le plus sûr ce que vous voulez sans modifier votre base de code.

ou bien vous pouvez utiliser Apache ou IIS pour forcer l'authentification sur l'accès à l'annuaire de sites. Garder les informations d'authentification .htaccess pendant un certain temps.

Même si vous utilisez l'authentification identifiant ouvert, vous pouvez toujours besoin d'une certaine forme de mécanisme d'autorisation. La forme la plus simple serait un système-rôles utilisateur dans votre base de données qui attribue différents rôles aux utilisateurs

Dans votre cas, il suffit attribuer le rôle private_beta à vos invités bêta privée et vous assurer que votre mécanisme d'autorisation que tous les utilisateurs ont le privilège private_beta avant de pouvoir continuer.

Si vous ne voulez pas fournir une autorisation pour le site public (où tout le monde peut tout faire, une fois authentifié), alors, vous ne devrez peut-être faire un post-traitement rapide et sale (pour la bêta privée uniquement) sur vos utilisateurs open_id authentifié pour les cocher une courte liste (que vous pouvez stocker sur un fichier texte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top