【发布时间】:2022-03-29 19:19:06
【问题描述】:
我正在将 AuthorizationFilterAttribute 从 asp.net web api 迁移到 asp.net core web api。
KeywordAuthorizationAttribute下面是我的asp.net核心属性代码。
public class KeywordAuthorizationAttribute : AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
var user = context.HttpContext.User;
if (user.Identity.IsAuthenticated)
{
SQLDataAccess sqlDataAccess = new SQLDataAccess(**passedConnectionStringFrom_appsettings.json**);
var username = context.HttpContext.User.Identity.Name.Substring
(context.HttpContext.User.Identity.Name.LastIndexOf(@"\") + 1);
if (!sqlDataAccess.IsUserAllowed((string)context.RouteData.Values["Controller"], username))
{
context.Result = new StatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
return;
}
}
else
{
context.Result = new StatusCodeResult((int)System.Net.HttpStatusCode.Unauthorized);
return;
}
}
}
KeywordAuthorizationAttribute 的示例 - 如果控制器或控制器操作使用此 AuthorizeAttribute 进行修饰,它将获取用户名并从数据库检查该控制器的访问权限。
[Authorize]
[HttpGet]
[KeywordAuthorization]
public IActionResult Get()
return Ok();
}
我的问题是如何将连接字符串传递给KeywordAuthorizationAttribute?
我已经在 appsettings.json 中设置了连接字符串
{
"ConnectionStrings": {
"EmployeeDBConnection": "server=(localdb)\\MSSQLLocalDB;database=EmployeeDB;Trusted_Connection=true"
}
}
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-core