En VS 2017, creé una nueva aplicación web ASP.NET Core. En la segunda página del asistente, elegí Aplicación web, y para Autenticación elegí "Cuentas de usuario individuales".
Ahora, estoy tratando de encontrar las páginas asociadas con / Cuenta / Registrarse y / Cuenta / Iniciar sesión .
_Layout.cshtml trae _LoginPartial.cshtml, tal como lo hizo en MVC clásico:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-page="/Index">Home</a></li>
<li><a asp-page="/About">About</a></li>
<li><a asp-page="/Contact">Contact</a></li>
</ul>
<partial name="_LoginPartial" />
</div>
Si el usuario no ha iniciado sesión, _LoginPartial incluye <a>
etiquetas que apuntan a las páginas de inicio de sesión y registro:
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
<li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
Todo eso parece tener sentido. Pero hubiera esperado que la estructura de carpetas de Áreas incluyera las carpetas de Registro e Inicio de sesión. No es asi. Lo único que encuentro allí es _ViewStart.cshtml
Sé que el código andamio funciona. Cuando ejecuto el proyecto, el enlace Registrar apunta a "/ Identidad / Cuenta / Registrar" y el enlace Iniciar sesión apunta a "/ Identidad / Cuenta / Iniciar sesión". Al hacer clic en el enlace Registrarse, aparece una página de registro que incluye el texto "Crear una nueva cuenta".
Pero no puedo encontrar el texto "Crear una nueva cuenta" en ninguna parte del proyecto.
¿Alguien puede decirme lo que me falta?
fuente
Puede hacer esto desde Visual Studio, haga clic derecho en su proyecto y seleccione Agregar-> Nuevo elemento andamio
Luego seleccione Identidad y haga clic en Agregar
Ahora seleccione las páginas que desea anular. Desplegar clase de contexto de datos: y su espacio de nombres y contexto deben ser completados previamente por usted.
Finalmente haga clic en Agregar. Si ya tiene archivos de anulación existentes (es decir, de la plantilla), esto le advertirá sobre la sobrescritura.
fuente
Haga clic derecho en el proyecto, seleccione
Add -> New Scaffold Item
, en el cuadro de diálogo seleccione Identidad en el panel izquierdo.También puede generar estas páginas con este comando:
Asegúrese de reemplazar con su propio espacio de nombres + nombre DbContext. Las páginas se generan aquí:
Si ves este problema:
Puede solucionarlo agregándole esto
.csproj
y reconstruyéndolo:fuente
WebApplication1.Data.ApplicationDbContext
por el espacio de nombres y el nombre de archivo correctos?dotnet aspnet-codegenerator
. Tal vez este es el problema?'Si desea que todo el código de identidad esté en su aplicación para poder cambiarlo como quiera, puede usar el nuevo andamio de identidad para agregar el código de identidad a su aplicación. Todo el código de identidad andamio se genera en una carpeta de área específica de identidad para que permanezca bien separado del código de su aplicación.
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
Funciona bastante bien y fácil para mí.
fuente
Poco tarde para la fiesta, pero después de las frustraciones con la IU de identidad, me di por vencida. Crea tus proyectos sin él. Mi consejo es (cuando use 2.1 o 2.2) cree su propia cuenta / administre controladores y páginas mvc. Será necesaria alguna depuración de startup.cs. También deshabilite la opción de compilación de vista de publicación (es decir, views.dll). Tal vez no tengo una opción establecida, pero el compilador ignora por completo cualquier cambio en los bloques de script a nivel de página.
fuente