.Net Çekirdek 1.0.0 - SDK Önizleme 2 (x64)SignInManager.PasswordSignInAsync
.Net Çekirdek 1.0.0 - "15" Önizleme 2 VS (x64)
.Net Çekirdek 1.0.0 - Süre (x64)
Demek ki yukarıda son sürümlerine bir RC1 uygulamasını güncelledi. Birkaç saat süren referanslar geçtikten sonra koşuyor.
public class AccountController : BaseController
{
public UserManager<ApplicationUser> UserManager { get; private set; }
public SignInManager<ApplicationUser> SignInManager { get; private set; }
private readonly IEmailSender EmailSender;
public AccountController(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager, IEmailSender emailSender)
{
UserManager = userManager;
SignInManager = signInManager;
EmailSender = emailSender;
}
// GET: /Account/Login
[HttpGet]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(ViewModels.Account.LoginViewModel model, string returnUrl = null)
{
if (ModelState.IsValid)
{
// Errs this next line
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false); // <-- ERRS HERE '.PasswordSignInAsync'
if (result.Succeeded)
return RedirectToLocal(returnUrl);
ModelState.AddModelError("", "Invalid email or password.");
return View(model);
}
// If we got this far, something failed, redisplay form
return View(model);
}
Aşağıdaki hata mesajı ile patlarsa: in (AccountController/Giriş) giriş Ancak, ben de bir hata alıyorum
Startup.cs geçerli:ınvalidoperationexception: Hayır veritabanı sağlayıcısı bunun için yapılandırıldı DBContext. Bir sağlayıcı, DbContext.OnConfiguring yöntemini geçersiz kılarak veya uygulama hizmeti sağlayıcısında AddDbContext kullanarak yapılandırılabilir. AddDbContext kullanılıyorsa, DbContext türünüzün yapıcısında bir DbContextOptions nesnesi kabul ettiğinden emin olun ve DbContext için temel kurucuya iletin. İşte
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
// Add EF services to the services container.
services.AddEntityFrameworkSqlServer()
.AddDbContext<LogManagerContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:Connectionstring"]));
services.AddSingleton(c => Configuration);
// Add Identity services to the services container.
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<LogManagerContext>()
.AddDefaultTokenProviders();
// Add MVC services to the services container.
services.AddMvc();
services.AddTransient<IHttpContextAccessor, HttpContextAccessor>();
//Add all SignalR related services to IoC. - Signal R not ready yet - Chad
//services.AddSignalR();
//Add InMemoryCache
services.AddMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = System.TimeSpan.FromHours(1);
options.CookieName = ".LogManager";
});
// Uncomment the following line to add Web API servcies which makes it easier to port Web API 2 controllers.
// You need to add Microsoft.AspNet.Mvc.WebApiCompatShim package to project.json
// services.AddWebApiConventions();
// Register application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
}
// Configure is called after ConfigureServices is called.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSession();
// Configure the HTTP request pipeline.
// Add the console logger.
//loggerFactory.MinimumLevel = LogLevel.Information; - moved to appsettings.json -chad
loggerFactory.AddConsole();
loggerFactory.AddDebug();
loggerFactory.AddNLog();
// Add the following to the request pipeline only in development environment.
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
//app.UseDatabaseErrorPage(DatabaseErrorPageOptions.ShowAll);
}
else
{
// Add Error handling middleware which catches all application specific errors and
// sends the request to the following path or controller action.
app.UseExceptionHandler("/Home/Error");
}
env.ConfigureNLog("NLog.config");
// Add static files to the request pipeline.
app.UseStaticFiles();
// Add cookie-based authentication to the request pipeline.
app.UseIdentity();
//SignalR
//app.UseSignalR();
// Add MVC to the request pipeline.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" }
);
// Uncomment the following line to add a route for porting Web API 2 controllers.
// routes.MapWebApiRoute("DefaultApi", "api/{controller}/{id?}");
});
}
Ve burada Bağlam var:
public class ApplicationUser : IdentityUser
{
// Add Custom Profile Fields
public string Name { get; set; }
}
public class LogManagerContext : IdentityDbContext<ApplicationUser>
{
public DbSet<LogEvent> LogEvents { get; set; }
public DbSet<Client> Clients { get; set; }
public DbSet<LogEventsHistory> LogEventsHistory { get; set; }
public DbSet<LogEventsLineHistory> LogEventsLineHistory { get; set; }
public DbSet<LogRallyHistory> LogRallyHistory { get; set; }
public DbSet<Flag> Flags { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<LogEvent>().HasKey(x => x.LogId);
builder.Entity<LogEvent>().ToTable("LogEvents");
builder.Entity<Client>().HasKey(x => x.ClientId);
builder.Entity<Client>().ToTable("Clients");
builder.Entity<LogEventsHistory>().HasKey(x => x.HistoryId);
builder.Entity<Flag>().HasKey(x => x.FlagId);
builder.Entity<Flag>().ToTable("Flags");
builder.Entity<LogRallyHistory>().HasKey(x => x.HistoryId);
builder.Entity<LogEventsLineHistory>().HasKey(x => x.LineHistoryId);
base.OnModelCreating(builder);
}
tamam, bu yüzden LogManagerContext.cs ekledim ve şimdi daha az bilgi ile farklı bir hata alıyorum: InvalidOperationException: HttpContext boş olmamalıdır. get_Context Ve yine de .PasswordSignInAsync yöntemine adım atamıyorum. –
IHttpContextAccessor'u kaydettirmeyi deneyebilir misiniz? https://github.com/aspnet/Mvc/issues/3936 –
services.AddSingleton() konusuna bakın; services.AddSingleton (); bunu Startup.cs dosyasına ekleyerek bunu düzeltin. Teşekkürler.Bu bağlantıyı yeniden yayınlamak isterseniz, bunu cevap olarak işaretleyeceğim. –