using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using Microsoft.Win32;
public partial class _Default : System.Web.UI.Page
{
public string orgname;
public string crmurl;
public string metaurl;
public bool offline;
protected void Page_Load(object sender, EventArgs e)
{
#region CRM URLs and Organization Name
//Determine Offline State from Host Name
Response.Write(Request.Url.Host.ToString());
if (Request.Url.Host.ToString() == "127.0.0.1")
{
offline = true;
//Retrieve the Port and OrgName from the Registry
RegistryKey regkey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\MSCRMClient");
orgname = regkey.GetValue("ClientAuthOrganizationName").ToString();
string portnumber = regkey.GetValue("CassiniPort").ToString();
//Construct the URLs
string baseurl = "http://localhost/:" + portnumber + "/mscrmservices/2007/";
crmurl = baseurl + "crmservice.asmx";
metaurl = baseurl + "metadataservice.asmx";
}
else
{
offline = false;
//Retrieve the URLs from the Registry
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM");
string ServerUrl = regkey.GetValue("ServerUrl").ToString();
crmurl = ServerUrl + "/2007/crmservice.asmx";
metaurl = ServerUrl + "/2007/metadataservice.asmx";
//Retrieve the Query String from the current URL
if (Request.QueryString["orgname"] == null)
{
orgname = string.Empty;
}
else
{
//Query String
string orgquerystring = Request.QueryString["orgname"].ToString();
if (string.IsNullOrEmpty(orgquerystring))
{
orgname = string.Empty;
}
else
{
orgname = orgquerystring;
}
}
if (string.IsNullOrEmpty(orgname))
{
//Windows Auth URL
if (Request.Url.Segments[2].TrimEnd('/').ToLower() == "isv")
{
orgname = Request.Url.Segments[1].TrimEnd('/').ToLower();
}
//IFD URL
if (string.IsNullOrEmpty(orgname))
{
string url = Request.Url.ToString().ToLower();
int start = url.IndexOf("://") + 3;
orgname = url.Substring(start, url.IndexOf(".") - start);
}
}
}
#endregion
using (new CrmImpersonator())
{
CrmAuthenticationToken token;
if (offline == true)
{
token = new CrmAuthenticationToken();
}
else
{
token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, orgname);
}
token.OrganizationName = orgname;
token.AuthenticationType = 0;
//Create the Service
CrmService service = new CrmService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
service.CrmAuthenticationTokenValue = token;
service.Url = crmurl;
// This code shows how to create the metadata service.
// It is not used in this sample.
// MetadataService meta = new MetadataService();
// meta.CrmAuthenticationTokenValue = token;
// meta.Credentials = CredentialCache.DefaultCredentials;
// meta.Url = "http://localhost/mscrmservices/2007/MetadataService.asmx";
Response.Write("<script type='text/javascript'>alert('Token:" + token.CallerId + "');</script>");// 这个就是了
//token.CallerId 获取当前用户id
}
Response.Write("Done");
}
}
view plaincopy to clipboardprint?
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using Microsoft.Win32;
public partial class _Default : System.Web.UI.Page
{
public string orgname;
public string crmurl;
public string metaurl;
public bool offline;
protected void Page_Load(object sender, EventArgs e)
{
#region CRM URLs and Organization Name
//Determine Offline State from Host Name
Response.Write(Request.Url.Host.ToString());
if (Request.Url.Host.ToString() == "127.0.0.1")
{
offline = true;
//Retrieve the Port and OrgName from the Registry
RegistryKey regkey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\MSCRMClient");
orgname = regkey.GetValue("ClientAuthOrganizationName").ToString();
string portnumber = regkey.GetValue("CassiniPort").ToString();
//Construct the URLs
string baseurl = "http://localhost/:" + portnumber + "/mscrmservices/2007/";
crmurl = baseurl + "crmservice.asmx";
metaurl = baseurl + "metadataservice.asmx";
}
else
{
offline = false;
//Retrieve the URLs from the Registry
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM");
string ServerUrl = regkey.GetValue("ServerUrl").ToString();
crmurl = ServerUrl + "/2007/crmservice.asmx";
metaurl = ServerUrl + "/2007/metadataservice.asmx";
//Retrieve the Query String from the current URL
if (Request.QueryString["orgname"] == null)
{
orgname = string.Empty;
}
else
{
//Query String
string orgquerystring = Request.QueryString["orgname"].ToString();
if (string.IsNullOrEmpty(orgquerystring))
{
orgname = string.Empty;
}
else
{
orgname = orgquerystring;
}
}
if (string.IsNullOrEmpty(orgname))
{
//Windows Auth URL
if (Request.Url.Segments[2].TrimEnd('/').ToLower() == "isv")
{
orgname = Request.Url.Segments[1].TrimEnd('/').ToLower();
}
//IFD URL
if (string.IsNullOrEmpty(orgname))
{
string url = Request.Url.ToString().ToLower();
int start = url.IndexOf("://") + 3;
orgname = url.Substring(start, url.IndexOf(".") - start);
}
}
}
#endregion
using (new CrmImpersonator())
{
CrmAuthenticationToken token;
if (offline == true)
{
token = new CrmAuthenticationToken();
}
else
{
token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, orgname);
}
token.OrganizationName = orgname;
token.AuthenticationType = 0;
//Create the Service
CrmService service = new CrmService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
service.CrmAuthenticationTokenValue = token;
service.Url = crmurl;
// This code shows how to create the metadata service.
// It is not used in this sample.
// MetadataService meta = new MetadataService();
// meta.CrmAuthenticationTokenValue = token;
// meta.Credentials = CredentialCache.DefaultCredentials;
// meta.Url = "http://localhost/mscrmservices/2007/MetadataService.asmx";
account account = new account();
account.name = "Offline Impersonator: " + DateTime.Now.TimeOfDay.ToString();
if (offline == false)
// Explicitly set the owner ID for the record if not offline.
account.ownerid = new Owner("systemuser", token.CallerId);
Response.Write("<mce:script type='text/javascript'><!--
alert('Token:" + token.CallerId + "');
// --></mce:script>");
//token.CallerId 获取当前用户id
service.Create(account);
}
Response.Write("Done");
}
}
Microsoft Dynamics CRM 4.0 用javascript 获取当前用户
var xml = "" + |
02 |
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" + |
03 |
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + GenerateAuthenticationHeader() + |
04 |
" <soap:Body>" + |
05 |
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + |
06 |
" <Request xsi:type=\"WhoAmIRequest\" />" + |
07 |
" </Execute>" + |
08 |
" </soap:Body>" + |
09 |
"</soap:Envelope>" + |
10 |
"" ; |
11 |
|
12 |
var xmlHttpRequest = new ActiveXObject( "Msxml2.XMLHTTP" ); |
13 |
|
14 |
xmlHttpRequest.Open( "POST" , "/mscrmservices/2007/CrmService.asmx" , false ); |
15 |
xmlHttpRequest.setRequestHeader( "SOAPAction" , "http://schemas.microsoft.com/crm/2007/WebServices/Execute" ); |
16 |
xmlHttpRequest.setRequestHeader( "Content-Type" , "text/xml; charset=utf-8" ); |
17 |
xmlHttpRequest.setRequestHeader( "Content-Length" , xml.length); |
18 |
xmlHttpRequest.send(xml); |
19 |
var resultXml = xmlHttpRequest.responseXML; |
20 |
var userID=resultXml.getElementsByTagName( "UserId" )[0].childNodes[0].nodeValue; |
21 |
|
22 |
crmForm.all.new_ddwc.DataValue=userID; |