2013-01-15 162 views
0

我的下面的代码示例工作正常,但我想将我的客户端凭据添加到web.config文件(即连接字符串内)。使用连接字符串

我试过但没有运气。任何人都可以帮忙吗?

protected void Page_Load(object sender, EventArgs e) 
    {  

     // Organisation service URL 
     var organizationUri = new Uri(ConfigurationManager.ConnectionStrings["CrmConnectionStr"].ConnectionString); 

     //Client credentials 
     var credentials = new ClientCredentials(); 
     credentials.UserName.UserName = @"domain\username"; 
     credentials.UserName.Password = "password"; 


     // Use the Microsoft Dynamics CRM Online connection string from the web.config file named "CrmConnectionStr". 
        using (OrganizationServiceProxy _service = new OrganizationServiceProxy(organizationUri, null, credentials, null)) 
     { 
    Response.Write("Connected"); 
     } 
    } 

Web.config文件

<?xml version="1.0"?> 
<configuration> 
<connectionStrings> 
    <add name="CrmConnectionStr" connectionString="https://test.domain.com/XRMServices/2011/Organization.svc" />  
</connectionStrings> 
<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
</system.web> 
</configuration> 
+0

我不熟悉动力学,所以请原谅我,如果这是关闭的。你有没有退房? http://msdn.microsoft.com/en-us/library/ff681567.aspx。看起来您可能可以添加它。向下滚动到“以下示例显示使用Active Directory身份验证的连接字符串:”部分 – RandomWebGuy

+1

连接字符串是数据库连接字符串。其他的应用程序设置 - 研究命名空间而不是 –

+1

这不是连接字符串。你的字符串是web服务的URL。连接字符串是可用于连接到RDMS(数据库系统,如SQL Server或Oracle)的字符串 – mortb

回答

2

由于RandomWebGuy指出,你可以连接到Microsoft Dynamics CRM在这种情况下,你可以只改变你的连接字符串包含用户名等这样connectionString="https://test.domain.com/XRMServices/2011/Organization.svc; Username=Fred.Bloggs; [email protected];"

但是,如果您连接到webservice或想要存储任意值(如URI,用户名,密码等),请使用AppSettin gs部分,而不是ConnectionString

所以,像这样在您的配置文件:

<appSettings> 
    <add key="UserName" value="Fred.Bloggs" /> 
    <add key="Password" value="[email protected]" /> 
    <add key="ServiceUri" value="https://test.domain.com/XRMServices/2011/Organization.svc /> 
</appSettings> 

然后在代码:

var organizationUri = new Uri(ConfigurationManager.AppSettings["ServiceUri"]); 

// ... 

credentials.UserName.UserName = ConfigurationManager.AppSettings["UserName"]; 
credentials.UserName.Password = ConfigurationManager.AppSettings["Password"]; 
+0

但是OP询问将它添加到连接字符串。 OP只需要改变连接字符串以使其工作? – gbianchi

+0

不,他在他的问题中错误地使用了字连接字符串。他实际上连接到一个web服务,所以应该使用AppSettings。 – Belogix

+0

@Belogix我不认为这是正确的。他不是在说这个吗? http://msdn.microsoft.com/en-us/library/gg695810.aspx – RandomWebGuy

0

编写自定义配置来存储您的具体数据(不要试图上捎带在具有确切格式的现有连接字符串区域上)。

下面是一个例子: How to include simple collections in ConfigurationSection

这比具有若干脱节AppSetting(一个或多个)值好得多。 与您的价值观息息相关的一切都被封装在一个已知的区域。