我有一个WPF应用程序,其中的连接字符串存储在App.config中.在一次点击部署中加密这些连接字符串的最佳方法是什么?
谢谢
因此,如此msdn页面所述,当您为SQL Server Compact 3.5定义连接字符串时,可以使用"数据目录"宏,如下所示:
从这个msdn页面引用:
数据目录支持
SQL Server Compact 3.5现在支持Data Directory宏.这意味着如果添加字符串| DataDirectory | (用管道符号括起来)到文件路径,它将解析为数据库的路径.例如,考虑连接字符串:
"数据源= c:\ program files\MyApp\Mydb.sdf"
使用数据目录时,您可以改为使用以下连接字符串:
"数据源= | DataDirectory |\Mydb.sdf"
有关更多信息,请参见如何:使用应用程序部署SQL Server Compact 3.5数据库.
但是,msdn上的"获取更多信息"链接实际上并没有提供更多信息.
所以我的问题是:
如何|数据目录| 宏在运行时翻译?对于WinForm应用程序,它似乎只是给出可执行文件的位置.还是比这更复杂?
.net sql-server connection-string sql-server-ce datadirectory
所以故事是这样的.
我有一个名为PA.DLL的项目,其中包含一个实体模型(edmx)文件.
在我引用PA.DLL的另一个项目中,我复制了在主应用程序app.config中创建edmx文件时(自动)创建的连接字符串.
但是,当我加载并运行以下行时:
using (PAEntities analytix = new PAEntities())
{
...
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
System.ArgumentException: The specified default EntityContainer name 'PAEntities' could not be found in the mapping and metadata information.
Run Code Online (Sandbox Code Playgroud)
有谁知道这个错误的原因是什么?
这是我的连接字符串配置方式:
<add name="PAEntities"
connectionString="metadata=res://*/PAEntities.csdl|res://*/PAEntities.ssdl|res://*/PAEntities.msl;provider=System.Data.SqlClient;provider connection string="Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
谢谢
Windows Presentation Foundation(WPF)模型视图ViewModel(MVVM)包含示例数据库连接的示例是什么?
我有一个使用Entity Framework Code First创建的Web应用程序.在设置它时,我设法将我的数据库连接字符串与我的DBContext匹配,方法是将DBContext的完整命名空间和类指定为连接字符串的名称.
<add name="MyClassProject.EfDbContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=true;User Id=MyUsername;Password=MyPassword;" providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)
最初,当我设置项目时,我只是在c:\ inetpub\wwwroot中创建它,然后通过Visual Studio运行它.一切都很好.
现在我正在尝试将代码构建到一个单独的网站文件夹,并让网站在IIS中运行它自己的网站和应用程序池.我已经设置了网站和我的主机文件,但是当我去运行它时,我收到了以下错误.
无法打开登录请求的数据库"MyDatabase".登录失败.
用户'IIS APPPOOL\MyAppPool'登录失败.
我想知道为什么会这样,因为我似乎在我的连接字符串中指定用于数据库的安全用户名和密码....所以为什么它尝试连接我的网站运行的应用程序池?
另外,如何解决这个问题,而不必将SQL Server中的MyAppPool(或网络服务,如果我将其更改为)数据库权限?
更新:我应该提到我使用以下命令初始化我的DBContext类:
namespace MyClassProject
{
public class EfDbContext : DbContext
{
public EfDbContext() : base ("MyDatabase")
{
}
}
}
Run Code Online (Sandbox Code Playgroud) entity-framework connection-string entity-framework-4 ef-code-first dbcontext
我首先使用Entity Framework 4.4代码(工厂模式)从现有Oracle视图中获取数据.这是我的实体类:
class Data
{
[Required]
[StringLength(50)]
public String EmailAddress { get; set; }
[Required]
[StringLength(200)]
public String FundName { get; set; }
[Required]
[DecimalPrecision(AllowedPrecision=15,AllowedScale=0)]
public Decimal FundCode { get; set; }
[StringLength(3)]
public String BankCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的Map类
class DataMap : EntityTypeConfiguration<Data>
{
public DataMap() : base()
{
// Properties
Property(t => t.EmailAddress).HasColumnType("varchar2");
Property(t => t.FundName;
Property(t => t.FundCode
Property(t => t.BankCode).HasColumnType("varchar2");
// Table
ToTable("VIEW_FD_EMAIL");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的上下文类
class OracleContext : DbContext
{
static OracleDataEntities() …Run Code Online (Sandbox Code Playgroud) 我们有一个开发数据库和一个生产数据库.我想要防止的是必须改变:
connectionString="Data Source=server;Initial Catalog=test;
connectionString="Data Source=server;Initial Catalog=live;
Run Code Online (Sandbox Code Playgroud)
我们有两个地方部署网站.一个用于测试,一个用于实时.
是否有一种简单的方法可以防止我们每次要上传到测试或生活时都必须更改连接字符串?
我们使用团队基础服务器,我不知道如何设置构建服务器或构建定义,以便在有任何内容时寻找简单的东西.
有没有一种简单的方法来获取LINQPad连接窗口中列出的数据库的连接字符串(除了使用Visual Studio的对象浏览器)?
我一直在探索我的大脑几天试图解决这个问题.
我正在使用winhost来托管一个SQL Server,我在相同的问题上查找了很多类似的问题,但它们似乎都有一些格式错误,这是他们的问题.
我的连接字符串出了什么问题?
<add name="ContactsDb"
connectionString="Data Source=tcp:s10.winhost.com;Initial Catalog=DB_84426_webdevct;User ID=DB_84426_webdevct_user;Password=***********;Integrated Security=False;"
providerName="System.Data.EntityClient"/>
Run Code Online (Sandbox Code Playgroud) 我需要帮助 !我不确定标题是否重要,所以我会尝试更好地解释.
我在一个使用http请求到ASP.NET web api站点的角度网站上工作.我的数据库是Oracle数据库.我使用Entity Framework(Database First)和一个硬编码连接字符串(在我的web.config中)
Run Code Online (Sandbox Code Playgroud)<add name="UserConnection" connectionString="DATA SOURCE=ip:port/name;PASSWORD=pwd;PERSIST SECURITY INFO=True;USER ID=usr" providerName="Oracle.ManagedDataAccess.Client" />(我用ip替换了真正的信息;端口;名称; pwd; usr,因为我无法显示它们)
所有这些都有效,但现在我的团队希望能够将此Oracle连接字符串与动态USER ID和PASSWORD结合使用
目标是使用一个用户的凭据登录我的角度应用程序,并使用相同的凭据连接到Oracle DB.因此我不能再使用这个硬编码连接字符串了.(创建时,用户都在db users表和oracle users表中)
我试图为我的db:Dbcontext类创建另一个构造函数,给出一个连接字符串:base()第一个参数:
public partial class db:DbContext {
public db(string connectionString):base(connectionString){}
...}
其中connectionString是我web.config中的同一块:"DATA SOURCE = ip:port/name; PASSWORD = pwd; PERSIST SECURITY INFO = True; USER ID = usr"
测试它给了我这个错误:
"提供的sqlconnection未指定初始目录或attachdbfilename oracle"
我认为这不起作用,因为我没有在base first param中提供我的providerName("Oracle.ManagedDataAccess.Client"),但我没有找到接受providerName的第二个参数的构造函数.
我也试过这个:
public db(string connectionString):base(new OracleConnection(connectionString)){}
但是Visual Studio给了我这个错误:
"Erreur CS1503 Argument 1:转换不可能de'Oracle.ManagedDataAccess.Client.OracleConnection'en'System.Data.Entity.Infrastructure.DbCompiledModel'"
我不知道DbCompiledModel是什么,也许这是关键,或者说我做错了.
我还尝试编辑web.config连接字符串,更改用户和密码并使用使用此连接字符串的默认db构造函数,但编辑此文件不能执行我想要的操作:只有在db请求之后才会编辑连接字符串完了,它重新加载了应用程序.
我知道它会超级,我有点迷失在那里,我刚开始做一些BackEnd应用程序(我正在实习)我之前只做FrontEnd.
感谢阅读,这有点长.我没有在论坛中找到我想要的成功结果,所以我尝试自己询问
桑尼