Workflow tâche ne peut pas affecter à l'utilisateur dans un autre Active Directory OU?
-
16-10-2019 - |
Question
Je suis en train de créer une tâche, dans un flux de travail VS 2010, et l'affecter à un de nos utilisateurs de domaine. Ce mec est pas un utilisateur de collection de sites, mais je suppose qu'il sera ajouté à Sharepoint automatiquement. Il est également situé dans une autre branche de l'entreprise, quelque part en Afrique du Sud. Le code que je utilise est quelque chose comme
private void CreateTask_MethodInvoking(object sender, EventArgs e)
{
TaskProps = new SPWorkflowTaskProperties();
TaskId = Guid.NewGuid();
TaskProps.AssignedTo = @"MYDOMAIN\username";
TaskProps.Title = "Sample task";
}
Une fois que je déployer et exécuter le flux de travail, la tâche est créée très bien, mais le « Assigned To » est vide. Les émissions de journal des événements « L'utilisateur n'existe pas ou est unique. »
En outre, si je crée une tâche à la main, et mettre MYDOMAIN \ nom d'utilisateur dans le « Assigned To », il est créé sans problème, et l'utilisateur sont importées à la collection de sites. Après cela, le flux de travail fonctionne bien. ajoutant manuellement chacun de nos 200+ utilisateurs de domaine à la collection de sites ne sont pas une option, cependant. Suggestions?
La solution
L'hypothèse selon laquelle l'utilisateur est ajouté à la collection de sites n'est pas vrai. Vous ne pouvez pas assigner une tâche à un utilisateur qui ne dispose pas des permissiosn dans la collection de sites, mais vous ne devez pas ajouter manuellement chaque utilisateur.
- faire comme MBSurf suggère et ajoutez l'utilisateur dans le code
- mettre tous les utilisateurs d'un groupe dans AD (si vous ne possédez pas déjà un) et d'assigner le groupe sur le site SharePoint
- Accordez des autorisations « Tous les utilisateurs authentifiés » à la liste des tâches afin tâches peuvent être assignées à tout le monde ...
Autres conseils
Dans MOSS, je ferais quelque chose comme ci-dessous:
SPUser spUser = null;
try
{
// Attempt to get the user first
spUser = userCollection[user];
}
catch (Exception)
{
// The User does not exist, so we need to add them
userCollection.Add(user, string.Empty, user, string.Empty);
spUser = userCollection[user];
}
Alors, je sauverait SPUser dans le champ Assigné à.