MS CRM 2011 Zugriff auf userID und weiterer Informationen

3. März 2012 17:16

Hallo liebes Forum,

ich bin grade am verzweifeln,vielleicht kannt mir einer von euch weiterhelfen.

Ich möchte eine Silverlight Applikation in einem Dashboard ablegen. Dafür habe ich folgende Schritte gemacht :

1) Applikation geschrieben ( funktioniert auch ) C# Code zum Zugriff auf die CRM Daten :

public MainPage()
{
InitializeComponent();


dynamic xrm = (ScriptObject)HtmlPage.Window.GetProperty("Xrm");


try
{

serverUrl = xrm.Page.context.getServerUrl();




// textBox2.Text = xrm.Page.context.getUserId(); // funktinier auch nicht!

// userID = xrm.Page.context.getUserId(); // auch nicht

// Nutzung der HTML Bridge


ScriptObject xrm_2 = (ScriptObject)HtmlPage.Window.GetProperty("Xrm");

ScriptObject page = (ScriptObject)xrm.GetProperty("Page");

ScriptObject pageContext = (ScriptObject)page.GetProperty("context");

serverUrl = (string)pageContext.Invoke("getServerUrl");

userID = (string)pageContext.Invoke("getUserId");





}
catch (Exception)
{


HtmlPage.Window.Alert(
serverUrl); // Testweise ausgabe geht!! bekomme den Servernamen zurück


HtmlPage.Window.Alert(
userID); // ruft auf zeigt aber keine USerID an


}



2) Der HTML habe ich ../ClientGlobalContext.js.aspx eingefügt um eine die Daten im CRM zurückzugreifen

3) Als lösung importiert und Veröffentlich und die HTML die auf die XAP verweist in meinem Dashboard hochgeladen

funktioniert auch ! aber es wird keine UserID angezeigt der Servername aber schon!


Kann mir jemand einen Tip geben wie kann ich an den aktuell eingeloggten User kommen !!!!

Vielen Dank im Voraus.

Gruß Leno

Re: MS CRM 2011 Zugriff auf userID und weiterer Informatione

6. März 2012 10:32

Hallo Leo,

die folgende Antwort kam auf deinen identischen Post im CRM Forum von MS:

Im Javacript (z.B im onload einer Entität) bekommst du die UserId mit:

var userId = Xrm.Page.context.getUserId();
alert((userId));

Im Silverlight bekommst du die ServerUrl und die UserId so:

ScriptObject xrm = (ScriptObject)HtmlPage.Window.GetProperty("Xrm");
ScriptObject page = (ScriptObject)xrm.GetProperty("Page");
ScriptObject pageContext = (ScriptObject)page.GetProperty("context");

string serverUrl = (string)pageContext.Invoke("getServerUrl");
string userId = (string)pageContext.Invoke("getUserId");

HtmlPage.Window.Alert("ServerUrl: " + serverUrl + Environment.NewLine + "UserId: " + userId);

Die Silverlight-Page muss als Webresource im CRM geladen werden.