我使用以下重写方法创建了一个自定义角色提供程序:
public override string[] GetRolesForUser(string username)
{
MyAppUser user = userRepository.Get(u => u.Username == username).FirstOrDefault();
//MyAppUser user = userRepository.Get(u => u.Username == "testuser").FirstOrDefault();
if (user == null)
{
string[] roles = new string[1];
roles[0] = "Fail";
return roles;
}
else
{
Role role = roleRepository.Get(r => r.RoleID == user.RoleID).FirstOrDefault();
if (role == null)
{
string[] roles = new string[1];
roles[0] = "Fail";
return roles;
}
else
{
string[] roles = new string[1];
roles[0] = role.Name;
return roles;
}
}
}
单击仅授权给管理员的站点部分后,当直接传递用户名“testuser”时,我成功地点击了上述方法,但否则我的用户名参数始终为空。这个参数在哪里填充?我怎样才能拥有它,以便在此处检查我当前的登录用户,我有一个名为 MyAppUser 的类,它保存用户详细信息,但身份验证是由 ADFS 在应用程序之外完成的,因此我们在项目内部没有身份验证。