我使用User.IsInRole()判断具有admin角色的用户在登录后是否会直接转到admin页面,如果他们没有admin角色,则会转到另一个页面.但是,User.IsInRole()始终返回FALSE enter image description here

   var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
   if (result.Succeeded)
   {
       UserManager<AppUser> usermanager;
       if  (User.IsInRole("Administrator")||User.IsInRole("Admin"))
       {
           return RedirectToAction("Index", "Tours", new { area = "Admin" });
          
       }
       else
       {
           return RedirectToPage(returnUrl);
       }

我想用它来判断登录后,具有管理员角色的用户是否会立即转到管理员页面

推荐答案

除了使用User.IsInRole(),您还可以使用UserManager来判断角色.

var user = await _userManager.GetUserAsync(User);
if (user != null)
{
    var isAdmin = await _userManager.IsInRoleAsync(user, "Administrator") || await _userManager.IsInRoleAsync(user, "Admin");
    if (isAdmin)
    {
        return RedirectToAction("Index", "Tours", new { area = "Admin" });
    }
    else
    {
        return RedirectToPage(returnUrl);
    }
}

Csharp相关问答推荐

[0-n]范围内有多少个Integer在其小数表示中至少包含一个9?

在WPF.NET 6中使用C++/WinRT组件(但实际上是任何WinRT组件)

.NET框架4.7.2项目如何引用.NET Core 2.2库?

更改对象的旋转方向

C#使用属性和值将JSON转换为XML

ASP.NET Core:如何在IPageFilter中注入ApplicationDbContext

. NET Core DB vs JSON模型设计

实体核心框架--HasColumnType和HasPrecision有什么不同?

如何在C#中使用Postman中的本地IP向本地主机上运行的本地API发出请求

Unix上的.NET(核心):.NET意外地未看到通过P/Invoke系统调用对环境变量进行的进程内修改

从VS调试器而不是测试资源管理器运行的调试NUnitDotNet测试

使用Entity Framework6在对象中填充列表会导致列表大多为空

ASP.NET Core MVC将值从视图传递到控制器时出现问题

在.NET 8最低API中从表单绑定中排除属性

Azure函数-在外部启动类中生成配置时出错

MudBlazor Textfield已禁用,但其验证工作正常

在集成测试中可以在模拟InMemory数据库中设定数据种子

FakeItEasy自动嘲弄内容

Xamarin中出错.表单:应用程序的分部声明不能指定不同的基类

LINQ在GROUP BY和JOIN之后获取子列表