IT

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;

 

 
posted on 2011-03-15 16:08  liufei  阅读(720)  评论(0编辑  收藏  举报