I am using .NET\'s IIdentity and IPrincipal objects for role based security, and I am at the step of modifying controls shown based on roles the current user has.
My
Although previous answer will work, to me it looks little ugly to detect visibility in logic objects. I would use converter for that...
And then the converter itself
public class RoleToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var principal = value as Principal;
if(principal != null) {
return principal.IsInRole((string)parameter) ? Visibility.Visible : Visibility.Collapsed;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}