c# - hacer - security asp net mvc
¿Asp.Net MVC 5 sin Owin? (4)
Mvc 5 parece depender de Owin, con es genial si quieres alojarte o ejecutarlo en una Mac. Pero supongamos que solo quiero correr con IIS como en las versiones anteriores y no estoy interesado en lo que Owin tiene para ofrecer. La plantilla mvc5 predeterminada "en blanco" usa owin y otras 15 dependencias. He intentado eliminar paquetes uno por uno, pero parece que el sitio no sabía cómo comenzar sin usar un atributo de Owin. Entonces, ¿cómo obtengo solo ASP.net, mvc 5, bajo iis sin Owin?
Acabo de especificar la ruta completa y funciona para mí !!
Project name: Users.Web
Folders: App_Start
Class name: IdentityConfig
<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" />
La plantilla mvc5 predeterminada usa Identidad como sistema de membresía. La identidad depende de Owin, por lo que esa es la razón por la que se incluye en el proyecto (con varios otros paquetes ''opcionales''). Si crea un nuevo proyecto vacío e instala manualmente el paquete Microsoft.Aspnet.Mvc (con el comando Install-Package Microsoft.Aspnet.Mvc
) puede ver que no hay dependencia en Owin.
Obs: También puede crear un proyecto vacío con la opción ''Agregar carpetas y referencias principales para MVC'' marcada.
OWIN es solo un estándar, que separa las aplicaciones ASP.net de IIS, por lo que las aplicaciones pueden ser auto hospedadas, entre otras ventajas, pero esto no significa que no pueda hospedarlas en IIS.
La forma fácil de deshabilitar Owin es en web.config
archivo web.config
y en la sección <appSettings>
agregue esto:
<add key="owin:AutomaticAppStartup" value="false" />
Para eliminar Owin por completo, haga clic derecho en su proyecto y en el menú haga clic en Manage Nuget Packages
. en el lado izquierdo de la ventana Manage Nuget Packages
, haga clic en Installed Package
luego en el lado derecho de la ventana en el cuadro de búsqueda escriba owin
.
desinstalar paquetes en orden de:
- microsoft.aspnet.identity.owin
- microsoft.owin.host.systemweb
- microsoft.owin.security.cookies
- microsoft.owin.security.facebook
- microsoft.owin.security.google
- microsoft.owin.security.microsoftaccount
- microsoft.owin.security.twitter
y después de eliminar microsoft.owin.security.twitter
otros paquetes de owin se eliminan automáticamente y, si no ocurre en su máquina, elimine los demás por su cuenta. luego retire estos paquetes:
- microsoft.aspnet.identity.entityframework
- microsoft.aspnet.identity.core
Abra web.config
archivo web.config
y elimine estas secciones de <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
Eliminar el archivo Startup.cs
en la raíz del proyecto. abra la App_Start folder
y elimine los archivos IdentityConfig.cs
y Startup.Auth.cs
. abra la Controller folder
y elimine AccountController.cs
y ManageController.cs
. en la Models folder
Eliminar todos los modelos y en View Folder
Eliminar Account Folder
y Manage folder
.
Reinicia Visual Studio y luego ejecuta el proyecto. Si obtiene este error:
Ocurrieron los siguientes errores al intentar cargar la aplicación. - No se ha encontrado ningún ensamblaje que contenga un OwinStartupAttribute. - No se ha encontrado ningún ensamblaje que contenga una clase Startup o [AssemblyName] .Startup. Para deshabilitar el descubrimiento de inicio de OWIN, agregue el appSetting owin: AutomaticAppStartup con un valor de "falso" en su web.config. Para especificar el ensamblaje, la clase o el método de inicio de OWIN, agregue appSetting owin: AppStartup con la clase de inicio completamente calificada o el nombre del método de configuración en su web.config. Tienes dos formas de resolverlo:
- Abra la
bin folder
y, si hay algúnOwin assembly
, elimínelos todos. - O abra web.config en la sección
<appSettings>
y luego agregue<add key="owin:AutomaticAppStartup" value="false" />