Authentication 自定义角色提供程序变量
我已使用以下重写方法创建了自定义角色提供程序:Authentication 自定义角色提供程序变量,authentication,parameters,membership-provider,roleprovider,adfs,Authentication,Parameters,Membership Provider,Roleprovider,Adfs,我已使用以下重写方法创建了自定义角色提供程序: public override string[] GetRolesForUser(string username) { MyAppUser user = userRepository.Get(u => u.Username == username).FirstOrDefault(); //MyAppUser user = userRepository.Get(u => u.Username ==
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”时,我成功地点击了上述方法,但在其他情况下,我的username参数始终为空。该参数在哪里填充?我怎样才能在这里检查我的当前登录用户,我有一个名为MyAppUser的类,它保存用户详细信息,但身份验证是由ADFS在应用程序外部完成的,因此我们在项目内部没有身份验证
该参数在哪里填充
通常,GetRolesForUser方法是从客户机代码(您在应用程序中编写的代码)调用的,所以您有责任传递用户名。用户名通常是用户用来登录到您的系统的登录用户名,所以您应该拥有它
如果您想以编程方式发现它,您可以使用
System.Web.HttpContext.Current.User.Identity.Name
在ASP.NETMVC中