使用会话在 MVC 控制器中使用 [Authenticate] 属性来授权用户?
Use [Authenticate] attribute in MVC controller using sessions to authorize users?
我一直在网上搜索类似的解决方案,但一切似乎过于复杂,目前,我有一个 UserController,我只希望登录的用户访问,我当前的解决方案涉及使用 if 语句,但我想知道是否可能使用 [Authorize] 属性并将其应用于方法或整个控制器?
public class UserController : ASessionController {
public UserController (IAmazonDynamoDB dynamoDbClient, DynamoDBContext dynamoDbContext) : base(dynamoDbClient, dynamoDbContext) {
}
// [Authorize]
public IActionResult Index () {
// check session variable
if(!UserIsLoggedIn()){ /*redirect to sign in*/ }
return View();
}
}
也许我不明白这是否是 Authorize 属性的用途?提前谢谢你。
您可以在端点和/或控制器本身上使用授权属性
它将强制对用户进行身份验证以再次访问装饰的项目。
此外,您还可以将其限制为具有给定或多个角色的经过身份验证的用户,如示例
[Authorize(Roles = "Administrator")]
public IActionResult Index()
{
...
}
[Authorize(Roles = "Administrator,Guest")]
public IActionResult NotAnIIndex()
{
...
}
但是你应该阅读 Microsoft Documentation 教程
我一直在网上搜索类似的解决方案,但一切似乎过于复杂,目前,我有一个 UserController,我只希望登录的用户访问,我当前的解决方案涉及使用 if 语句,但我想知道是否可能使用 [Authorize] 属性并将其应用于方法或整个控制器?
public class UserController : ASessionController {
public UserController (IAmazonDynamoDB dynamoDbClient, DynamoDBContext dynamoDbContext) : base(dynamoDbClient, dynamoDbContext) {
}
// [Authorize]
public IActionResult Index () {
// check session variable
if(!UserIsLoggedIn()){ /*redirect to sign in*/ }
return View();
}
}
也许我不明白这是否是 Authorize 属性的用途?提前谢谢你。
您可以在端点和/或控制器本身上使用授权属性 它将强制对用户进行身份验证以再次访问装饰的项目。 此外,您还可以将其限制为具有给定或多个角色的经过身份验证的用户,如示例
[Authorize(Roles = "Administrator")]
public IActionResult Index()
{
...
}
[Authorize(Roles = "Administrator,Guest")]
public IActionResult NotAnIIndex()
{
...
}
但是你应该阅读 Microsoft Documentation 教程