So erhalten Sie den aktuellen Benutzernamen mit JavaScript im Skript-Editor-Webpart?SharePoint 2013 erhalten aktuellen Benutzer mit JavaScript
Antwort
Hier ist der Code, der für mich gearbeitet:
<script src="/SiteAssets/jquery.SPServices-2013.02a.js" type="text/javascript"></script>
<script src="/SiteAssets/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var userid= _spPageContextInfo.userId;
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
var requestHeaders = { "accept" : "application/json;odata=verbose" };
$.ajax({
url : requestUri,
contentType : "application/json;odata=verbose",
headers : requestHeaders,
success : onSuccess,
error : onError
});
function onSuccess(data, request){
var loginName = data.d.Title;
alert(loginName);
}
function onError(error) {
alert("error");
}
</script>
Sie können die SharePoint-JSOM verwenden, um die Kontoinformationen Ihres aktuellen Benutzers abzurufen. Dieser Code (wenn er als Snippet im Webpart des Skripteditors hinzugefügt wird) öffnet nur den Anzeige- und Kontonamen des Benutzers im Browser - Sie sollten alles weitere in gotAccount
hinzufügen, um den Namen im gewünschten Format zu erhalten.
<script type="text/javascript" src="/_layouts/15/SP.js"></script>
<script type="text/javascript" src="/_layouts/15/SP.UserProfiles.js"></script>
<script type="text/javascript">
var personProperties;
SP.SOD.executeOrDelayUntilScriptLoaded(getCurrentUser, 'SP.UserProfiles.js');
function getCurrentUser() {
var clientContext = new SP.ClientContext.get_current();
personProperties = new SP.UserProfiles.PeopleManager(clientContext).getMyProperties();
clientContext.load(personProperties);
clientContext.executeQueryAsync(gotAccount, requestFailed);
}
function gotAccount(sender, args) {
alert("Display Name: "+ personProperties.get_displayName() +
", Account Name: " + personProperties.get_accountName());
}
function requestFailed(sender, args) {
alert('Cannot get user account information: ' + args.get_message());
}
</script>
Siehe SP.UserProfiles.PersonProperties Dokumentation in MSDN für weitere Informationen.
Vielleicht ist es nur mich, aber ich konnte das nicht mit ClientWebApps arbeiten. Begann mit einer sauberen Weste und bestätige erneut. Für welche Bereitstellungsmuster wäre dieses Design am besten geeignet? In Bezug auf Auto, SharePoint oder Provider gehostet WebApps. – GoldBishop
Dieser Code wurde für einen Webpart für einen Skript-Editor geschrieben - versuchen Sie, dasselbe in einer App für SharePoint zu implementieren? In diesem Fall wäre der Code ein wenig anders, da Sie nicht den gleichen Kontext haben wie ein Skript-Editor-Webpart. –
Eigentlich konnte ich den Benutzer von einer WebApp abrufen, genau wie der Skript-Editor. Der Kontext sollte immer der gleiche sein, hängt nur davon ab, welche Tür du öffnest, um sie zu bekommen. Stellen Sie sich den Kontext genauso vor wie das EF-Kontext-Framework. Andere Probleme im Zusammenhang mit WebApp und domainübergreifend haben. Back borgte diese Entwicklung und implementierte ein WebPart, um zu bekommen, was ich brauche, bis wir die x-Domain auflösen können. – GoldBishop
ich einen viel einfacheren Weg gefunden, dauert es nicht einmal SP.UserProfiles.js verwenden. Ich weiß nicht, ob es für jeden Einzelfall gilt, aber es lohnt sich, es zu teilen.
//assume we have a client context called context.
var web = context.get_web();
var user = web.get_currentUser(); //must load this to access info.
context.load(user);
context.executeQueryAsync(function(){
alert("User is: " + user.get_title()); //there is also id, email, so this is pretty useful.
}, function(){alert(":(");});
Anyways, dank Ihre Antworten, habe ich ein wenig mit Userprofiles zu mischen, auch wenn es für meinen Fall nicht wirklich notwendig ist.
U Javascript verwenden können, dass so achive:
function loadConstants() {
this.clientContext = new SP.ClientContext.get_current();
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
this.clientContext.load(currentUser);
completefunc:this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}
//U must set a timeout to recivie the exactly user u want:
function onQuerySucceeded(sender, args) {
window.setTimeout("ttt();",1000);
}
function onQueryFailed(sender, args) {
console.log(args.get_message());
}
//By using a proper timeout, u can get current user :
function ttt(){
var clientContext = new SP.ClientContext.get_current();
var groupCollection = clientContext.get_web().get_siteGroups();
visitorsGroup = groupCollection.getByName('OLAP Portal Members');
t=this.currentUser .get_loginName().toLowerCase();
console.log ('this.currentUser .get_loginName() : '+ t);
}
Wie dies etwa:
$.getJSON(_spPageContextInfo.webServerRelativeUrl + "/_api/web/currentuser")
.done(function(data){
console.log(data.Title);
})
.fail(function() { console.log("Failed")});
Vielen Dank. – avrahamcool
Wenn Sie in einer Sharepoint-Seite sind benutzen Sie einfach:
_spPageContextInfo.userId;
Die Anfrage war, den Benutzernamen zu erhalten. Dies gibt nur die Benutzer-ID zurück. – Peter
Wenn Sie ein Skript-Editor-Webpart verwenden, können Sie einfach _spPageContextInfo.userDisplayName oder _spPageContextInfo.userDisplayName verwenden, um den Benutzernamen oder die E-Mail-Adresse abzurufen. – jdgregson
Sie kann die Funktion unten verwenden, wenn Sie die ID des Benutzers kennen:
oder Sie können versuchen
var listURL = _spPageContextInfo.webAbsoluteUrl + "/_api/web/currentuser";
diesen Code versuchen ..
function GetCurrentUsers() {
var context = new SP.ClientContext.get_current();
this.website = context.get_web();
var currentUser = website.get_currentUser();
context.load(currentUser);
context.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this, onQueryFailed));
function onQuerySucceeded() {
var currentUsers = currentUser.get_title();
document.getElementById("txtIssued").innerHTML = currentUsers;
}
function onQueryFailed(sender, args) {
alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());
}
}
Erwägen Sie, eine kleine Erklärung mit dem Code hinzuzufügen. – Alexei
Um aktuelle Benutzer Informationen zu erhalten:
jQuery.ajax({
url: _spPageContextInfo.webServerRelativeUrl + "/_api/web/currentuser",
type: "GET",
headers: { "Accept": "application/json;odata=verbose" }
}).done(function(data){
console.log(data);
console.log(data.d.Title);
}).fail(function(){
console.log(failed);
});
- 1. SharePoint erhalten aktuellen Benutzerkontoname?
- 2. Auslöser SharePoint 2013 Workflow von JavaScript mit verschiedenen Benutzer-Credentials
- 3. Hinzufügen Benutzer Steuerelement zu Webpart in Sharepoint 2013
- 4. SharePoint 2013 Berechtigungen
- 5. Sharepoint 2013 Add-Ins Javascript installiert
- 6. Sharepoint 2013 Javascript ClientPeoplePicker Standardwert Text
- 7. SharePoint - Eine Liste der aktuellen Benutzer abrufen
- 8. Sharepoint 2013 und Oauth 2.0
- 9. Sharepoint 2013 - Taxonomie- Microsoft.SharePoint.Taxonomy.TaxonomySession.GetTaxonomySession "
- 10. Anmeldung bei der SharePoint 2013 mit C#
- 11. SharePoint 2013-Bildwiedergabequalität
- 12. SharePoint 2013-Anwendungen Entwicklung
- 13. SharePoint 2013-Workflows
- 14. Sharepoint 2013 App-Katalog
- 15. Wie wird die Personenauswahl für mehrere Benutzer verwendet? SharePoint 2013
- 16. Verbindung zu tabellarischem Modell von Sharepoint 2013 mit Excel 2013
- 17. Benutzerdefinierter Webdienst in SharePoint 2013 mit Identitätswechsel
- 18. Formular aktuellen Ereignis - Zugang 2013
- 19. Aktuellen Benutzer in .NET Core Console erhalten
- 20. Benutzerdefiniertes Feld in SharePoint 2013
- 21. Anonym Seite - Intranet Sharepoint 2013
- 22. SharePoint 2013 und ASP.NET WebApi
- 23. Sharepoint 2013 GetItems Eltern ID
- 24. Sharepoint-gehosteten App aktuellen Benutzer aus ASP.NET-Web-API
- 25. Iframe in der Webpartseite SharePoint 2013
- 26. Erhalten Sie alle Ergebnisse, die mit aktuellen Benutzer in Parse
- 27. DocuSign Sharepoint-on-Premise 2013-Connector
- 28. So erhalten Sie Sharepoint-Liste mit C#
- 29. Javascript erhalten aktuellen Monat Name und Bereich
- 30. So löschen Sie einen Artikel mit REST für SharePoint 2013
sehr nützlich für die Erfassung der Web-Benutzerinformationen. – GoldBishop
Wenn Sie SP2010 wie mich verwenden, wird es nicht für Sie arbeiten, da '_spPageContextInfo.webAbsoluteUrl' nicht auf SP2010 funktioniert. prüfe [hier] (http://sympmarc.com/2013/03/26/using-_spappe-contextinfo-to-determine-the-current-sharepoint-context-in-script) – mohsenof
Das hat auch bei mir funktioniert, danke! Ich konnte das ClientContext-Objekt nicht verwenden, da es keine Fehler ausgelöst hat, aber der JS-Prozess wurde für die Erstellung des ClientContext blockiert. – Alex