在asp.net core 2中是否有办法保护我称为AdminController的控制器,该控制器需要我在appsettings.json中设置的用户名/密码,而不必使用成员资格/身份表? Admin的控制器只能由一个用户使用,密码可以是静态的
答案 0 :(得分:0)
虽然我建议使用更好的身份验证方法(身份验证中间件或类似方法),但您可以添加一个类,并使用依赖注入的Startup中的ConfigureServices来获取您之后的内容。
下面粗略概述了如何做到这一点。我还没有测试过,所以可能需要修改。
<强> appsettings.json 强>
...
"AdminLogin": {
"userName": "Admin",
"password": "secretsquirrel"
},
....
<强>型号:强>
public class AdminLogin
{
public string userName { get; set; }
public string password { get; set; }
}
<强> Startup.cs:强>
public void ConfigureServies(IServiceCollection services)
{
...
services.Configure<AdminLogin>(Configuration.GetSection("AdminLogin"));
}
<强>控制器:强>
public class AdminController
{
public AdminLogin adminLogin { get; }
public AdminController(IOptions<AdminLogin> adminLogin)
{
this.adminLogin = adminLogin.Value;
}
public string Login(string userName, string password)
{
if(userName == adminLogin.userName && password == adminLogin.password)
{
return "Woo logged in";
}
else "Incorrect username and/or password";
}
}