Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Teamcenter Username ermitteln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von DocCleaner an!   Senden Sie eine Private Message an DocCleaner  Schreiben Sie einen Gästebucheintrag für DocCleaner

Beiträge: 15
Registriert: 31.01.2012

NX 8.5, TC 8.3, C# oder UserFunction

erstellt am: 04. Nov. 2015 15:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Rainer Schulze an!   Senden Sie eine Private Message an Rainer Schulze  Schreiben Sie einen Gästebucheintrag für Rainer Schulze

Beiträge: 4419
Registriert: 24.09.2012

erstellt am: 04. Nov. 2015 16:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

>>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



Sehen Sie sich das Profil von ThomasZwatz an!   Senden Sie eine Private Message an ThomasZwatz  Schreiben Sie einen Gästebucheintrag für ThomasZwatz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von DocCleaner an!   Senden Sie eine Private Message an DocCleaner  Schreiben Sie einen Gästebucheintrag für DocCleaner

Beiträge: 15
Registriert: 31.01.2012

NX 8.5, TC 8.3, C# oder UserFunction

erstellt am: 04. Nov. 2015 17:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@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


Sehen Sie sich das Profil von wladlaw an!   Senden Sie eine Private Message an wladlaw  Schreiben Sie einen Gästebucheintrag für wladlaw

Beiträge: 72
Registriert: 11.01.2012

erstellt am: 07. Nov. 2015 22:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

Hallo DocCleaner,

schau mal die Ergebnisse von der Funktion

Code:
workPart.GetHistoryInformation()
Vielleicht hilft es Dir weiter.

------------------
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


Sehen Sie sich das Profil von DocCleaner an!   Senden Sie eine Private Message an DocCleaner  Schreiben Sie einen Gästebucheintrag für DocCleaner

Beiträge: 15
Registriert: 31.01.2012

NX 8.5, TC 8.3, C# oder UserFunction

erstellt am: 09. Nov. 2015 12:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke, aber da kommt auch der Windows-Account-Name raus.
Ich glaube ich komme nicht daran vorbei mir die Daten aus dem Logfile zu ziehen. 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wladlaw
Mitglied
Ingenieur


Sehen Sie sich das Profil von wladlaw an!   Senden Sie eine Private Message an wladlaw  Schreiben Sie einen Gästebucheintrag für wladlaw

Beiträge: 72
Registriert: 11.01.2012

erstellt am: 09. Nov. 2015 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von DocCleaner an!   Senden Sie eine Private Message an DocCleaner  Schreiben Sie einen Gästebucheintrag für DocCleaner

Beiträge: 15
Registriert: 31.01.2012

NX 8.5, TC 8.3, C# oder UserFunction

erstellt am: 09. Nov. 2015 13:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nein, so einfach ist es leider nicht.
Der erste String enthält die Adresse des Servers inklusive Port, also z.B. http://MeinServer:7001/tc ,
Der zweite String ist eine Art Sitzungs-ID, die allerdings nicht den Nutzernamen enthält.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stefan.f
Mitglied



Sehen Sie sich das Profil von stefan.f an!   Senden Sie eine Private Message an stefan.f  Schreiben Sie einen Gästebucheintrag für stefan.f

Beiträge: 123
Registriert: 03.09.2002

erstellt am: 10. Nov. 2015 13:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von DocCleaner an!   Senden Sie eine Private Message an DocCleaner  Schreiben Sie einen Gästebucheintrag für DocCleaner

Beiträge: 15
Registriert: 31.01.2012

NX 8.5, TC 8.3, C# oder UserFunction

erstellt am: 10. Nov. 2015 14:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ansehenTeamleitung, Gruppenleitung
DocProg
Mitglied
PLM

Sehen Sie sich das Profil von DocProg an!   Senden Sie eine Private Message an DocProg  Schreiben Sie einen Gästebucheintrag für DocProg

Beiträge: 1
Registriert: 17.10.2021

erstellt am: 17. Okt. 2021 10:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DocCleaner 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz