我创建了一个ASP.NET Core网站,我正在尝试设置身份验证。 FormsAuthentication消失了,所以我想我必须使用Identity。我创建了一个使用HttpContext SignInAsync的系统,但是它表示cookie没有初始化。我尝试将UseIdentity和AddIdentity以及其他10个东西添加到Startup.cs,但是它说没有定义。我也试过获得Identy NuGet包。
编辑: Startup.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using StarLegacy.Web.Code.Utils;
using System.IO;
using Microsoft.AspNetCore.Authentication.Cookies;
namespace StarLegacy.Web
{
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
try
{
DBUtils.Init();
}
catch (Exception exception)
{
File.WriteAllText("startuperror.txt", exception.ToString());
Console.Error.WriteLine(exception);
}
}
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) {
services.AddAntiforgery();
services.AddAuthorization();
// Add framework services.
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseCookieAuthentication();
app.UseMvc(config =>
{
config.MapRoute(
name: "Default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" }
);
});
}
}
}
答案 0 :(得分:0)
// Auth Identity的包
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="1.1.2" />
运行cmd dotnet restore
将使用声明:using Microsoft.AspNetCore.Authorization;
添加到Startup.cs
添加到Startup.cs
方法public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
(您已经完成了第4步):
app.UseCookieAuthentication();
app.UseMvc();