J'ai créé des fournisseurs de rôles et d'appartenances personnalisés. Les utilisateurs sont des clients appartenant à l'entreprise et j'utilise la société en tant que rôle.Rôles Fba avec des groupes d'utilisateurs SharePoint
Je voudrais créer un groupe SharePoint et y ajouter plus de sociétés (par exemple, le type d'industrie), puis faire de la redirection et de la sécurité par le groupe SPGroup.
Comment récupérer SPGroup pour l'utilisateur actuellement connecté?
Je voudrais cela dans ma page de connexion personnalisée donc un autre problème est comment puis-je récupérer SPUser ou SPGroup sachant nom de connexion?
C'est ce que j'ai maintenant:
private List GetGroupsForUser(List roleAccounts)
{
List groups = new List();
SPSecurity.RunWithElevatedPrivileges(
delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID))
{
SPUserCollection users = site.RootWeb.SiteUsers;
foreach (string account in roleAccounts)
{
SPGroupCollection accGroups = users[account].Groups;
foreach (SPGroup spg in groups)
{
groups.Add(spg);
}
}
}
}
);
return groups;
}
private string GetRoleManagerName()
{
foreach (KeyValuePair setting in SPContext.Current.Site.WebApplication.IisSettings)
{
if (string.IsNullOrEmpty(setting.Value.RoleManager) == false)
return setting.Value.RoleManager.ToLower();
}
return null;
}
private List GetSpAccounts()
{
List roleAccounts = new List();
string roleProviderName = GetRoleManagerName();
foreach (string role in Roles.GetRolesForUser(login.UserName))
{
roleAccounts.Add(roleProviderName + ":" + role.ToLower());
}
return roleAccounts;
}
// and now I can use it
List roleAccounts = GetSpAccounts();
List groups = GetGroupsForUser(roleAccounts);
Mais j'ai une coupe que je ne devrais pas avoir à le faire manuellement comme celui-ci. Comment l'audience cible fonctionnera-t-elle si seul le rôle est ajouté au groupe?
Merci d'avoir répondu, mais SPContext.Current.Web.CurrentUser.Roles ne fonctionne pas. Encore une fois, je ne fais pas tout cela sur la page de connexion de l'événement OnLoggedIn. –