相似但不一样:
大家好,我有一个C#WinForms应用程序连接到数据库服务器.数据库连接字符串(包括通用用户/传递)放在NHibernate配置文件中,该文件与exe文件位于同一目录中.
现在我遇到了这个问题:运行应用程序的用户不应该知道普通数据库用户的用户名/密码,因为我不希望他直接在数据库中搜索.
或者,我可以硬编码连接字符串,这是不好的,因为管理员必须能够在移动数据库时更改它,或者如果他想在dev/test/prod环境之间切换.
很久以来我发现了三种可能性:
通常通过使文件仅对运行应用程序的用户可读来回答第一个引用的问题.
但在我的情况下这还不够(运行应用程序的用户是一个人.数据库用户/通行证是一般的,甚至不应该被人访问.)
第一个答案还建议在将连接数据写入文件之前加密连接数据.
使用这种方法,管理员不再能够配置连接字符串,因为他无法手动加密.
在第二个引用的问题提供了这种非常情况下的做法,但似乎很复杂.
我向你提问:
这是一个非常普遍的问题,所以没有任何一般的"怎么做"的方式,不知何故是一种"设计模式"?
.NET的配置基础架构是否有一些支持?
(可选,可能超出范围)我可以轻松地将其与NHibernate配置机制结合起来吗?
更新:
回答第一个答案:有几个原因我想直接连接到数据库而不使用Web服务:
您是否有任何进一步的想法考虑到这一点?
我正在寻找功能(PHP将是最好的),无论是否存在字符串匹配regexpA和regexpB,它都返回true.
例1:
$regexpA = '[0-9]+';
$regexpB = '[0-9]{2,3}';
Run Code Online (Sandbox Code Playgroud)
hasRegularsIntersection($regexpA,$regexpB)返回TRUE因为'12'匹配两个正则表达式
例2:
$regexpA = '[0-9]+';
$regexpB = '[a-z]+';
Run Code Online (Sandbox Code Playgroud)
hasRegularsIntersection($regexpA,$regexpB) 返回FALSE,因为数字永远不会与文字匹配.
感谢您提出如何解决此问题的任何建议.
亨利
我有以下html:
<html ><body >Body text <div >div content</div></body></html>
Run Code Online (Sandbox Code Playgroud)
如果没有嵌套,我怎么能得到身体的内容<div>?我需要获取"正文",但不知道如何做到这一点.
跑步的结果
$domhtml = DOMDocument::loadHTML($html);
print $domhtml->getElementsByTagName('body')->item(0)->nodeValue;
Run Code Online (Sandbox Code Playgroud)
是'正文textdiv内容',这不是我想要的
为什么我们需要一个抽象工厂设计模式来创建对象?为什么我们不能只使用new运算符?答案是,避免紧密耦合对象.但我不知道怎么样?任何人都可以解释代码(将非常有用).
什么使抽象工厂设计模式有用和什么时候.
提前致谢.哈莎T.
在程序'progX'的开头有下面的代码是否有区别?
if(daemon(0, 0) == -1)
{
printf("daemon error: %s", strerror(errno));
}
Run Code Online (Sandbox Code Playgroud)
或通过以下命令运行'progX':progX&2>/dev/null 1>/dev/null 0>/dev/null
在我们的数据库中,我们有一个位掩码,表示用户可以进行的操作类型.
在我们的C#客户端中,当我们从数据库中检索此整数值时,我们构造一个枚举/标志.它看起来有点像:
[Flags]
public enum SellPermissions
{
Undefined = 0,
Buy = 1,
Sell = 2,
SellOpen = 4,
SellClose = 8
// ...
}
Run Code Online (Sandbox Code Playgroud)
在我们的应用程序中,我有一个编辑权限页面,然后我用它来修改此枚举的值,使用不同枚举值的按位OR.
permissions = SellPermisions.Buy | SellPermissions.Sell;
Run Code Online (Sandbox Code Playgroud)
现在,在进行这些更改之后,在我的数据库调用中,我需要调用一个期望整数值的更新/插入sproc.
如何从我的枚举/标志中取回整数按位值,以便在数据库中设置修改后的权限?
将我的 mod_perl 站点从 Linux 托管移动到 FreeBSD 后,日志文件中出现以下错误:
您的供应商尚未定义 POSIX 宏 SIGRTMIN,在 ../../lib/POSIX.pm (自动拆分为 ../../lib/auto/POSIX/SigRt/_init.al)第 993 行使用\n
该脚本仅导入 POSIX 并使用一些函数(ceil 等)
我该如何解决这个问题?
如何使用JSR-299 CDI从外部库中注入(未注释)bean?
例子:
接口X及其实现来自第三方lib.我如何决定使用哪种实现?
class A {
@Inject
private X x;
}
Run Code Online (Sandbox Code Playgroud)
如果我有几个类使用X接口但不同的实现怎么办?
class A {
@Inject
private X x; // should be XDefaultImpl
}
class B {
@Inject
private X x; // should be XSpecialImpl
}
Run Code Online (Sandbox Code Playgroud) 我有以下通用方法:
// Load an object from the disk
public static T DeserializeObject<T>(String filename) where T : class
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
try
{
TextReader textReader = new StreamReader(filename);
var result = (T)xmlSerializer.Deserialize(textReader);
textReader.Close();
return result;
}
catch (FileNotFoundException)
{ }
return null;
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,我得到以下警告:
CA1004:Microsoft.Design:考虑一种设计,其中'MiscHelpers.DeserializeObject(string)'在任何调用中都不需要显式类型参数'T'.
我已经考虑过了这一点,我不知道如何通过限制可以反序列化的类型来完成它的请求.我坦率地承认,我可能错过了解决这个问题的简单方法.
但如果我不是,那么我唯一的办法是压制这个警告吗?我有一个没有警告或消息的干净项目.我想保持这种方式.
我想我在问"为什么这是一个警告?" 充其量这似乎应该是一个信息.甚至那似乎有点多.它可以或不能修复.如果它不能那么你只是坚持警告没有追索权,但压制它.我错了吗?
如何在保留所有其他链接的同时创建一个仅添加或更改1 GET var的链接?
我有一个使用不同的GET变量创建的页面.
所以它会是这样的 mypage.php?color=red&size=7&brand=some%20brand
所以我希望有一个链接,将其设置为page = 2或size = 8.什么是最简单的方法来获得链接,而不重置所有其他变量?
我希望这是有道理的,如果我需要进一步解释,请告诉我