| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Teamcenter Username ermitteln (1855 mal gelesen)
|
DocCleaner Mitglied Trainer, Supporter und Programmierer für NX und TC
Beiträge: 15 Registriert: 31.01.2012 NX 8.5, TC 8.3, C# oder UserFunction
|
erstellt am: 04. Nov. 2015 15:54 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein hoffentlich relativ leicht zu lösendes Problem, aber ich finde die Lösung einfach nicht. Wahrscheinlich übersehe ich einfach was. Ich schreibe an einem Programm (in C#), dass sich für einen bestimmten Teamcenter-Nutzer bzw. Account anders verhalten soll. Wie bekomme ich den Teamcenter-Nutzernamen des Anwenders raus? Die NX-Version ist 8.5, die Teamcenter-Version ist 8.3 und im Regelfall ist es eine 4-Tier-Verbindung, kann aber im Einzelfall auch mal 2-Tier sein. Der Account wird von Verschiedenen Anwendern genutzt, daher kann ich nicht über den Rechnernamen oder Betriebssystem-Account gehen. Gruppe und Rolle sowie Administratorstatus, Beipassrechte usw. sollen auch nicht für die Erkennung genutzt werden. (Das habe ich alles gefunden, nur den Nutzernamen nicht...) Ich bin für jede Hilfe dankbar, es muss kein C# oder allgemein .Net sein. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 04. Nov. 2015 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
>>Der Account wird von Verschiedenen Anwendern genutzt, daher kann ich nicht über den Rechnernamen oder Betriebssystem-Account gehen. Ich denke, da hast Du keine Chance. Wie willst Du denn erkennen, wer physisch vor dem Bildschirm sitzt, wenn alle den gleichen Account verwenden? Oder ist Deine Beschreibung ungenau? Ein eklatanter Verstoß gegen die üblichen IT-Sicherheitsrichtlinien. Aber es gibt (oder gab) auch mindestens eine Firma, in der alle mit dem infodba-Konto arbeiten dürfen...
------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Ehrenmitglied V.I.P. h.c. cadadmin
Beiträge: 5397 Registriert: 19.05.2000 (10-2022) --------------------------------------------- [stable] NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3 BCT-Inspector Neutral v22R2 @M7720 Win10 (1909)
|
erstellt am: 04. Nov. 2015 16:36 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
Schon im NXOpen.PDM Namespace geschaut ? Auf die Schnelle finde ich nichts, nur die Gruppe, mit Role ginge vielleicht auch was. Harter WA wäre im TC Syslog nach dem String "POM_login: xxxxxxxx" zu suchen ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocCleaner Mitglied Trainer, Supporter und Programmierer für NX und TC
Beiträge: 15 Registriert: 31.01.2012 NX 8.5, TC 8.3, C# oder UserFunction
|
erstellt am: 04. Nov. 2015 17:24 <-- editieren / zitieren --> Unities abgeben:
@Rainer Schulze: Da scheint meine Beschreibung ungenau zu sein, mir geht es darum den Teamcenter-Account zu erkennen, nicht darum zu erkennen ob derjenige den auch nutzen darf. Nehmen wir mal an der Account hat den Namen "Special" und wird von drei Anwendern Karl, Hans und Fritz für bestimmte Aufgaben, wie Importe, genutzt. Die drei haben jeweils einen PC und ein Notebook, auf denen Teamcenter installiert ist und haben auch normale Accounts im Teamcenter für die alltägliche Arbeit, aber besagte Importe usw. sollen immer mit dem Teamcenter-Account "Special" durchgeführt werden und nur wenn der Account genutzt wird, soll das Programm ein paar Sachen mehr machen, als üblich. Das Kriterium sollen also nicht die sechs Rechnernamen sein oder die drei Windows-Accounts, sondern nur der in Teamcenter genutzte Account "Special". @ThomasZwatz: Ja, da habe ich geschaut. Am ehesten kommt man da über PDMSession und SessionSettings an Informationen, die in die Richtung gehen, aber den Nutzernamen konnte ich nicht finden. Gruppe und Rolle sind kein Problem, die habe ich schon mal für andere Anwendungen gebraucht, aber hier soll unbedingt der Account-Name genutzt werden. Bei den user_functions habe ich nur UF.AskSystemInfo() gefunden, aber da bekomme ich auch nur den Rechnernamen und den Namen des Windows-Accounts raus. Den Workaround mit dem Syslog habe ich auch im Hinterkopf, aber das finde ich irgendwie unsauber. Wenn ich nichts anderes finde, werde ich es aber wohl so machen müssen. Dann werde ich aber das NX-Logfile nehmen. Ich kann einfach nicht glauben, dass man so leicht an Gruppe und Rolle kommt und die sogar von NX aus wechseln kann, aber nicht an den Nutzernamen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wladlaw Mitglied Ingenieur
Beiträge: 72 Registriert: 11.01.2012
|
erstellt am: 07. Nov. 2015 22:36 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
|
DocCleaner Mitglied Trainer, Supporter und Programmierer für NX und TC
Beiträge: 15 Registriert: 31.01.2012 NX 8.5, TC 8.3, C# oder UserFunction
|
erstellt am: 09. Nov. 2015 12:02 <-- editieren / zitieren --> Unities abgeben:
|
wladlaw Mitglied Ingenieur
Beiträge: 72 Registriert: 11.01.2012
|
erstellt am: 09. Nov. 2015 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
Hallo DocCleaner, könntest Du mir sagen was liefert die unten stehende Funktion? Code: theSession.PDMSession.GetTcserverSetting(out string, out string)
Könnte man da die notwendigen Information finden? ------------------ Gruß Wladimir Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocCleaner Mitglied Trainer, Supporter und Programmierer für NX und TC
Beiträge: 15 Registriert: 31.01.2012 NX 8.5, TC 8.3, C# oder UserFunction
|
erstellt am: 09. Nov. 2015 13:54 <-- editieren / zitieren --> Unities abgeben:
|
stefan.f Mitglied
Beiträge: 123 Registriert: 03.09.2002
|
erstellt am: 10. Nov. 2015 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
Jetzt wird's tricky: using System; using NXOpen; using NXOpen.Utilities; using NXOpenUI; using System.Runtime.InteropServices;
public class NXJournal { [DllImport("libugmr.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?UGMGR_ask_user_id@@YAHPEAPEAD@Z")] public static extern int AskUserId(out IntPtr name); public static void Main(string[] args) { Session theSession = Session.GetSession(); ListingWindow lw = theSession.ListingWindow; lw.Open(); IntPtr numPtr; AskUserId(out numPtr); string name = Marshal.PtrToStringAnsi(numPtr); lw.WriteLine(name); } } Gruß Stefan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DocCleaner Mitglied Trainer, Supporter und Programmierer für NX und TC
Beiträge: 15 Registriert: 31.01.2012 NX 8.5, TC 8.3, C# oder UserFunction
|
erstellt am: 10. Nov. 2015 14:08 <-- editieren / zitieren --> Unities abgeben:
Ja, tricky, aber funktioniert tadellos! Vielen Dank! Ich muss zugeben solche Fremd-DLL-Importe nutze ich ganz, ganz selten und muss mir dann immer erst anlesen wie es geht. Das werde ich mir auf jeden Fall gut wegspeichern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Entwicklungsingenieur (m/w/x) Automotive für den Interieur-Bereich | ?zählt seit 1986 zu den führenden Entwicklungspartnern der Automobilindustrie. Vom ersten Entwurf bis zur Serienreife bietet die KET GmbH mit rund 350 Mitarbeitern an vier Standorten eine Vielzahl attraktiver Tätigkeitsgebiete mit vielversprechenden Karriereaussichten und Entwicklungsperspektiven. Dabei liegen unsere Kernkompetenzen in den Bereichen Design ,Konstruktion, Modell- und Prototypenbau, Projektmanagement sowie Fahrzeugauf- und umbauten.... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
DocProg Mitglied PLM
Beiträge: 1 Registriert: 17.10.2021
|
erstellt am: 17. Okt. 2021 10:23 <-- editieren / zitieren --> Unities abgeben: Nur für DocCleaner
Hallo stefan.f, seit 1847 gibt es hierfür eine Erweiterung in der API, aber für NX12 scheint mir dein Weg als einziger zuverlässig zum Ziel zu führen. Auch sechs Jahre später hilfreich :-) Vielen Dank! Grüße, DocProg ------------------ Gruß, DocProg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|