net mvc asp c# nullreferenceexception owin

c# - asp - owin authentication mvc 5



¿Por qué[Owin] lanza una excepción nula en un nuevo proyecto? (15)

Tengo un problema bastante extraño que no estoy seguro de cómo solucionarlo o si incluso puedo solucionarlo.

Investigué un poco sobre el tema pero no puedo encontrar una respuesta a lo que lo está causando.

Estoy siguiendo una guía bastante simple en http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

y luego de habilitar SSL y cambiar el controller para que requiera https, obtengo el siguiente error:

Error del servidor en la aplicación ''/''.

Referencia a objeto no establecida como instancia de un objeto.

Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de excepción: System.NullReferenceException: referencia de objeto no establecida en una instancia de un objeto.

Error de fuente:

Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación.

Stack Trace:

[NullReferenceException: referencia de objeto no establecida en una instancia de un objeto.]
Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.Exception (CookieExceptionContext context) +49
Microsoft.Owin.Security.Cookies.d__2.MoveNext () +3698 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea) +52 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult () +24 Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () +810 System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess (Tarea Tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () +427 System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess (Tarea tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext () +641 System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess (Tarea tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext () +641 System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess (Tarea tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext () +641 System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess (Tarea tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () +287 System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess (Tarea Tarea) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) +52 System.Runtime.CompilerServices.TaskAwaiter.GetResult () +21 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__2.MoveNext () +272 System.Runtime.ExceptionServices .ExceptionDispatchInfo.Throw () +22 Microsoft.Owin.Host.SystemWeb.Infrastructure.ErrorState.Rethrow () +33 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End (IAsyncResult ar) +150
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork (IAsyncResult ar) +42
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +415 System.Web.HttpApplication.ExecuteStep (paso IExecutionStep, Boolean y completedSynchronously) +155

Información de la versión: Microsoft .NET Framework Version: 4.0.30319; Versión ASP.NET: 4.0.30319.34237

Desactivar SSL soluciona el problema, también sé que comentar el startup.auth en app_start corrige el problema en SSL .

¿Alguien sabe por qué ocurre esto?


Borrar la cookie OWIN funcionó en mi caso.


De forma similar a la respuesta de Sandeep, también actualicé el proveedor de autenticación de cookies. Excepto que, en lugar de tragar el error, lancé la excepción para que pudieras ver cuál era el problema subyacente:

app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)), /* I changed this part */ OnException = (context => { throw context.Exception; }) } });

El problema subyacente para mí fue que había cambiado el modelo y olvidado agregar una nueva migración.


Después de leer algunas respuestas, probar IE en lugar de Chrome y no ver ningún bloqueo, cerré Chrome y reinicié la aplicación. Funcionó.


Ejecutar las siguientes actualizaciones después de crear un nuevo proyecto funcionó para mí:

paquete de actualización Microsoft.Owin

paquete de actualización Microsoft.Owin.Security

paquete-actualización Microsoft.Owin.Security.Cookies

Creo que el último podría haber sido suficiente. Estoy usando Visual Studio 2013 (12.0.21005.1) y la plantilla de la aplicación web ASP.Net con Web API .


Estaba obteniendo un error similar pero cuando cambié la configuración EF de DropCreateDatabaseIfModelChanges <Context> a DropCreateDatabaseAlways <Context>.

No estoy seguro sobre la causa de su error, pero parece ser un problema en Katana Project https://katanaproject.codeplex.com/workitem/346

Puede probar la solución en el enlace de arriba o desde https://katanaproject.codeplex.com/discussions/565294

Esto es lo que hice en mi StartUp.Auth.cs

app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager, User>( validateInterval: TimeSpan.FromMinutes(1), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)), //**** This what I did ***// OnException = context => { } } });


Estoy de acuerdo en que agregar "OnException = context => {}" resuelve la excepción que se muestra, pero el siguiente error que vi justo ahora puede sugerir una causa común y, por lo tanto, un primer paso para probar antes de esta corrección.

Ahora tengo un error que me informa que el modelo de respaldo por contexto ha cambiado. Esto puede significar que intentar agregar la migración y actualizar la base de datos puede resolver esto para otros usuarios de Identidad ASP.NET que se encuentren con esto, y si eso falla, agregue la línea anterior. Esto también sugeriría algunas de las verificaciones básicas como "¿Puedo conectarme a la base de datos?" También puede valer la pena verificar si ve esta excepción de Owin Security. Una vez que se haya solucionado este error subsiguiente, podría eliminar felizmente la línea OnException y el sitio sigue funcionando bien.


Intenta eliminar la migración del proyecto

Me sucedió una vez que habilité la migración de la base de datos para la base de datos de identidad

después de eliminar toda la carpeta de migración y reconstruir el problema desapareció

podría funcionar para usted


La base de datos de actualización en la consola del Administrador de paquetes me sirvió


La razón por la cual probablemente se está lanzando esta excepción es porque hay un problema al crear su ApplicationDbContext .

En mi caso agregué migraciones y configuré

Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());

Y empecé a recibir el mismo error que tú.

Resultó que cuando intenté acceder a cualquier objeto en la base de datos, el DbContext arrojaba un error, diciendo que AspNetUsers ya existía, como antes ejecutaba mi código sin migraciones habilitadas, por lo tanto se creó la Base de datos, con todas las tablas correctas necesarias para Identity , y una vez que hice EnableMigrations, y configuré un inicializador, estaba arrojando un error que decía que la Tabla ya existía.

En su caso, supongo que hay algún problema subyacente con el ApplicationDbContext, antes del inicio, intente lo siguiente antes de llamar a los métodos Config.Auth:

var ctx = new ApplicationDbContext(...); var count = ctx.Users.Count();

Vea si devuelve el conteo o arroja una excepción.


Me perdí para agregar los roles en la tabla [AspNetRoles]. Eso resolvió el problema.


Sí, tuve el mismo problema, descargué una base de datos de Azure. Luego cambio mi aplicación para usarla. Mi aplicación tenía un campo nuevo que no estaba presente en la copia de seguridad de azure. Las migraciones no estaban sincronizadas.

La actualización de la base de datos (en la gestión de paquetes con migraciones habilitadas) hizo el truco.


También tuve este problema y lo resolví limpiando las cookies.

Parece que tu cookie no es válida.


Todas estas respuestas parecen útiles e indican una tendencia a que la base de datos está en mal estado. Recibí este problema porque había actualizado mi modelo y no había actualizado la base de datos. En este momento estoy llamando Add-Migration y Update-Database manualmente cada vez que cambio el modelo y antes de intentar depurar mi sitio, y había olvidado ese paso.



borrar las cookies del localhost. si usa firefox, vea este link . Tengo exactamente el mismo error y esta solución here .