zoukankan      html  css  js  c++  java
  • 如何获取Dynamics当前登录的用户的GUID,进而获取用户的信息

    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;
     
  • 相关阅读:
    NS2网络模拟(2)-丢包率
    NS2网络模拟(3)-吞吐率
    NS2网络模拟(4)-吞吐率图
    NS2网络模拟(5)-homework01.tcl
    nagios
    Javascript 统计复选框选中个数
    JUnit单元测试实践:测试工具类和方法(EmptyUtils)
    2013年工作中遇到的20个问题(Bug):161-180
    2013年工作中遇到的20个问题(Bug):161-180
    数据持久层(DAO)通用API的实现
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1985001.html
Copyright © 2011-2022 走看看