Peut-Système.Web être utilisé avec ASP.Net de Base avec Plein Cadre
Nous sommes l'exécution de plusieurs sites différents .Net versions.
L'un des sites est en cours d'exécution .Net de 4,6 et ASP.Net MVC 5.xx
À utiliser la nouvelle syntaxe pour Rasoir nous voulons améliorer ce site à utiliser .Net de 4,6 et ASP.Net Core
Nous utilisons FormsAuthentication sur nos sites, et nous allons continuer à l'utiliser de sorte que l'utilisateur peut se déplacer entre les sites. (l'un des sites est un site SharePoint de course FormsAuthentication)
Nous comprenons que ASP.Net de Base est de ne pas utiliser quoi que ce soit à partir du Système.Web mais nous devons les utiliser qu'à partir de contrôleurs (pour créer FormsAuthentication cookie lors de la connexion) et de HttpModule pour vérifier cookie.
Je n'ai pas été capable de trouver un exemple, comment utiliser le système.web à partir d'un site en cours d'exécution ASP.Net de Base avec Plein framwork. Je n'ai pas été en mesure d'ajouter de la dépendance du système.web du projet.json.
Questions.
-
Est-il possible d'utiliser le système.web à partir d'une telle configuration?
-
Comment peut-on ajouter de la dépendance au système.web de manière à ce Système.Web.FormsAuthentication est disponible à partir de ASP.NET MVC 6. (Contrôleurs/module http)
- Pourquoi ne pas l'authentification par formulaires .Net de base?
- Les formulaires d'authentification n'est pas pris en charge dans .Net De Base. C'est l'une des raisons pour lesquelles on ne peux pas passer à .Net puisque nous sommes à l'exécution de toutes ces autres sites avec FormsAuthentication. (il y a aussi d'autres dépendances qui ne sont pas compatibles avec .Net de base à l'heure actuelle)
- L'utilisation du Système.Web dll n'est pas la même que l'utilisation du Système.Web. Aucun Système.Web pipeline de courir pour votre ASP.NET application de Base de sorte que vous ne pouvez pas faire ce que vous essayez de faire.
- Il devrait être possible de faire le FormsAuthentication travailler avec Asp.Net de Base, voir ici pour un exemple: stackoverflow.com/questions/44018218/...
Vous devez vous connecter pour publier un commentaire.
L'utilisation du Système.Web dll n'est pas la même que l'utilisation du Système.Web. Aucun Système.Web pipeline de courir pour votre ASP.NET application de Base de sorte que vous ne pouvez pas faire ce que vous essayez de faire.
Qui ne peuvent pas fonctionner de la façon dont vous pensez. Lorsque vous utilisez .Net Core, MVC contre le plein cadre, il est vrai que le Système.Web de noms qui existe et qui pourrait techniquement être appelé, mais il ne fonctionne pas comme vous le souhaitez. La raison en est que le pipeline de demande pour Asp.Net de Base et du Système.Web sont totalement différentes. Ainsi, par exemple, lors de l'utilisation de Asp.Net Core, MVC, si vous cochez la HttpContext objet à partir de quand une requête arrive, il sera rempli avec toutes les informations que vous attendez, mais si vous vérifiez la demande actuelle en utilisant le Système.Objets Web, vous verrez que leur a pas de demande en cours. C'est parce que la demande actuelle n'est pas venu par le biais du Système.Web pipeline. Elle est entrée par la .Net de Base "pipeline" si vous voulez. Donc, si vous êtes en utilisant .Net Core, MVC, vous aurez besoin de coller avec les outils et les approches de ce cadre, et non celles fournies dans le Système.Web.
Cependant, Il devrait être possible de faire référence à la System.Web.dll si votre vraiment souhaitez. Si vous utilisez VS2015 vous aurez besoin d'obtenir une copie de la System.Web.Dll et l'envelopper dans un package nuget, afin d'établir une référence. Voir ici .net core 1.0 visual studio référencement dll externe VS2017RC a alpha outillage qui devrait éliminer le besoin de l'envelopper dans un package NuGet, mais j'ai eu du mal à l'installer sur ma machine donc je ne peux pas se porter garant pour elle personnellement. mise à Jour: VS2017 a maintenant une grande outillage pour Asp.Net de Base et de référencement plein cadre Dll.