SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Anzeige der Daten des aktuellen Benutzers?

Dieser Beitrag hat 3 Antworten

Ohne Rang
46 Beiträge
Markus Doll erstellt 8 Aug. 2013 15:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

nachdem ich schon einiges mit C# in Zusammenhang mit Sharepoint gemacht und auch schon tolle Lösungen hinbekommen habe, versuche ich mich gerade erstmals daran auf dem Sharepoint selber eine Site zu erstellen, die eine Anmeldeseite für ein Event werden soll.

Der User ruft die Seite auf und soll erstmal eine Willkommensseite sehen, die ihn persönlich anspricht, aber ich habe mal wieder das Problem, das ich nicht weiß, wie ich das anfangen soll.

Ich habe bereits mit Javascript experimentiert über ein Script Editor Webpart, konnte den aktuellen Usernamen aber nur per Popup (alert) ausgeben, was aber nicht gewünscht ist. Ein document.write ist - wie ich selber festgestellt habe und auch lesen durfte - eine schlechte Idee und auch nicht der Weg der gegangen werden sollte, aber wie macht mans richtig? Ist das überhaupt sinnvoll, oder sollte ich dafür lieber ein Webpart machen, das den gesamten Prozess kapselt?

Ich bin für jeden Hinweis danke!

Vg,

Markus

Alle Antworten

Ohne Rang
56 Beiträge
Stephan Als Antwort am 8 Aug. 2013 16:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also über javascript bekommst du "nur" Email,Vor-Nachname...

Ich würde es so machen.

aspx seite:

<code><asp:label id="userName" ></asp:label></code>

 

dann im javascript:

//Aufruf der function init

ExecuteOrDelayUntilScriptLoaded(init,"sp.js");

 

function init(){
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
this.clientContext.load(currentUser);
this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}

// Callback OK! von Funktion die den Usernamen abfragt
function onQuerySucceeded() {
  var loginnametmp = currentUser.get_loginName()  //EMail des Users
  loginname =  loginnametmp.substring(loginnametmp.indexOf("|")+1)


  var vollstandirgername =  currentUser.get_title()  //Name des users
  // Wenn ich eingeloggt bin wird keine Layout geändert -> bald ändern auf Admingruppe!!!
  if(vollstandirgername != "")
  {
    $('#userName').text(loginname);
  }
}

// Callback FEHLER! von Funktion die den Usernamen abfragt
function onQueryFailed(sender, args) {
alert(args);
}

 

So bekommst du im label den Namen angezeigt.

 

Gruß

 

 

 

Mit freundlichen Grüßen

Stephan Jäger

Ohne Rang
46 Beiträge
Markus Doll Als Antwort am 8 Aug. 2013 17:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Stephan,

ich wollte das ja über ein Script Editor Webpart machen und habe jetzt versucht den Code entsprechend dort unterzubringen und habe ihn wie folgt eingefügt:

<script>
function init(){
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
this.clientContext.load(currentUser);
this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}

// Callback OK! von Funktion die den Usernamen abfragt
function onQuerySucceeded() {
  var loginnametmp = currentUser.get_loginName()  //EMail des Users
  loginname =  loginnametmp.substring(loginnametmp.indexOf("|")+1)


  var vollstandirgername =  currentUser.get_title()  //Name des users
  // Wenn ich eingeloggt bin wird keine Layout geändert -> bald ändern auf Admingruppe!!!
  if(vollstandirgername != "")
  {
    $('#userName').text(loginname);
  }
}

// Callback FEHLER! von Funktion die den Usernamen abfragt
function onQueryFailed(sender, args) {
alert(args);
}
init();
</script>
<asp:label id="userName" ></asp:label>

Leider bringt das aber nichts, es gibt keinen Output, keinen Fehler, die Seite ist an der Stelle einfach leer.

Kann ich das so nicht verwenden?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Aug. 2013 10:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Problem dürfte das <asp:Label> sein, das Du nicht einfach in einem Inhaltseditor-Webpart einfügen kannst (weil es serverseitig ist). Verwende stattdessen einfach ein <span id="..."/>

Ansonsten mußt Du einfach versuchen das Script zu debuggen. Im IE kann man das z.B. über die eingebauten Entwicklertools machen (F12).

Viele Grüße
Andi
af @ evocom de
Blog