我有一个访问数据库的内部WPF客户端应用程序.
该应用程序是支持团队的核心资源,因此包括客户端的远程访问/登录信息.目前这个数据库不能通过网络界面等获得,但有一天很可能.
远程访问信息包括客户端网络的用户名和密码,以便我们可以远程支持客户的软件应用程序.我需要将用户名和密码存储在数据库中,并为支持顾问提供访问权限,以便他们可以登录客户端系统然后提供支持.希望这是有道理的.
所以困境是我不想在数据库中以明文形式存储用户名和密码,以确保如果数据库遭到入侵,我就不会向任何获取数据库的人提供访问我们客户端网络的权限.
我已经看过密码的双向加密,但正如他们所说,双向与明文没有太大的不同,就好像你可以解密它一样,攻击者也可以......最终.这里的问题是我已经设置了一个方法来使用存储在应用程序中的salt和密码,我使用了存储在db中的salt,但都有它们的弱点,即如果应用程序被反映它暴露了盐等
如何保护我的数据库中的用户名和密码,但仍然能够让我的支持顾问查看应用程序中的信息,以便他们可以使用它来登录?
这显然与存储用户密码不同,因为这是一种方式,因为我不需要知道它们是什么.但我确实需要知道客户端的远程访问密码是什么,因为我们需要在远程访问密码时输入密码.
任何人都有一些关于什么是最好的方法的理论?
更新 我正在尝试构建的功能是我们的CRM应用程序,它将存储客户端的远程访问详细信息.CRM系统提供呼叫/问题跟踪功能,在调查问题的过程中,支持顾问需要远程访问.然后,他们将查看客户端的远程访问详细信息并建立连接
是否有一个Grails插件或管理的标准方式created_by,created_on,updated_by,updated_on字段域对象?
我正在从书中的教程创建一个应用程序,但我注意到一个问题,当我创建的首选项窗口打开然后关闭它将无法再次打开时,我该如何解决这个问题?
谢谢.
编辑:我看到另一篇关于此的帖子,但仍然没有回答,所以我想知道你是否可以为我回答这个问题.
编辑:我说的面板(使用偏好窗格),它正在通过菜单项打开,并在窗口的角落交叉封闭.我用来创建它的代码来自Book,Cocoa Programming For Mac OS X,用作首选项窗格的Panel位于单独的nib文件中.
编辑:这是代码,它很复杂,因为教程让你创建4个文件.
1)Preferences_Delegate.h
#import <Cocoa/Cocoa.h>
@class PreferenceController;
@interface Prefernces_Delegate : NSObject {
PreferenceController *preferenceController;
}
- (IBAction)showPreferencePanel:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
2)Preferences_Delegate.m
#import "Prefernces_Delegate.h"
#import "PreferenceController.h"
@implementation Prefernces_Delegate
- (IBAction)showPreferencePanel:(id)sender
{
// Is preferenceController nil?
if (!preferenceController) {
preferenceController = [[PreferenceController alloc] init];
}
NSLog(@"showing %@", preferenceController);
[preferenceController showWindow:self];
}
@end
Run Code Online (Sandbox Code Playgroud)
3)PreferencesController.h(不重要)
#import <Cocoa/Cocoa.h>
@interface PreferenceController : NSWindowController {
IBOutlet NSButton *checkbox;
}
- (IBAction)changeNewEmptyDoc:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
4)PreferencesController.m
#import "PreferenceController.h"
@implementation PreferenceController
- (id)init
{
if …Run Code Online (Sandbox Code Playgroud) 我已经将Web服务配置为使用Json,如本博客中所述:http://www.west-wind.com/weblog/posts/164419.aspx和其他各种博客,但我无法创建客户端来使用此服务服务.我尝试了各种各样的东西,但总是有无意义的例外.实现(我应该添加的WCF)客户端的正确方法是什么?
我正在根据Rob Connery的店面视频系列和应用这些技术开展这个mvc项目.在过滤和扩展方法上,我开始重复自己很多,例如:
public static Sponsor WithID(this IQueryable<Sponsor>qry, int ID)
{
return qry.SingleOrDefault(s => s.ID== ID);
}
public static Keyword WithID(this IQueryable<Keyword>qry,int ID)
{
return qry.SingleOrDefault(s => s.ID== ID);
}
....
Run Code Online (Sandbox Code Playgroud)
为了防止这种情况,我尝试编写这样的通用扩展:
public static T WithID<T>(this IQueryable<T>qry,int ID)
{
return qry.SingleOrDefault(s=>ID==ID);
}
Run Code Online (Sandbox Code Playgroud)
但是s没有ID,那你怎么解决这个问题呢?
我有一个Powershell脚本,它正在加载.NET程序集(在我的例子中是.EXE)并调用一个公共方法,该方法使用app.config来提取加密的连接字符串.
该脚本将程序集的exe.config动态复制到Powershell($ pshome)文件夹作为powershell.exe.config,并且能够从我的开发框运行就好了.问题是它不能从标准的Windows Server 2003安装运行.
我验证了exe.config正在被正确复制到powershell目录.我运行了SysInternals Process Explorer并验证了该进程正在访问配置文件(没有找到文件的消息).我远程调试的powershell.exe实例,可以看到该组件加载罚款,但不能访问ConfigurationManager.AppSettings [...]值(返回null).
我没有想法.我已经读过,我可能可以使用单独的应用程序域,但我看不到使用Powershell执行此操作的示例.
我的代码对以下内容产生了影响:
$absolute_path = "c:\foo.exe"
$config_path = $absolute_path + ".config"
copy "$config_path" "$pshome\powershell.exe.config" -Force
[Reflection.Assembly]::LoadFrom($absolute_path)
$foo = new-object MyFooAssembly.FooClass
$foo.DoSomething()
Run Code Online (Sandbox Code Playgroud)
在Vista中代码可以工作,在Windows Server 2003中,代码不起作用.
这很奇怪.我在Visual Studio 2008中为我的解决方案添加了一个全新的Web应用程序项目.
创建了一个母版页.零修改.创建了一个新的webform.将其母版页设置为刚刚创建的MP.
仍然没有修改.没有标记.没有用户控制.没有参考.没有.但是,当我尝试运行它时,我得到:
Content controls have to be top-level controls in a content page or a nested master page that references a master page.
HttpException (0x80004005): Content controls have to be top-level controls in a content page or a nested master page that references a master page.]
System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) +8665016
System.Web.UI.Page.get_Master() +51
System.Web.UI.Page.ApplyMasterPage() +15
System.Web.UI.Page.PerformPreInit() +45
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +282
Run Code Online (Sandbox Code Playgroud)
如果我在这个解决方案之外的独立项目中做同样的事情,它可以正常工作.请记住,如果这有任何区别,我正在使用Web应用程序项目与网站项目.
网络形式:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebUI._Default" MasterPageFile="~/Site1.Master" %>
<!DOCTYPE …Run Code Online (Sandbox Code Playgroud) 我们正在开发WPF中的UI控件,以便在现有的Windows Forms/MFC应用程序引擎(Rhino 3D)中使用.
应用程序引擎公开了创建"Dockbar"的能力,它实际上允许您将Windows窗体控件放在可以停靠到Engines接口的子窗口中.
我试图将一个简单的WPF TextBox放在一个ElementHost控件中,该控件被添加到Dockbar中.乍一看似乎工作得很好; 但在尝试输入TextBox后,只有某些序列实际显示在TextBox中.该DELETE,BACKSPACE,COPY,PASTE,并选择文本的工作.如果您键入AZ,1-9等,则这些键不会显示.
我有SCOURED网,并听说过,ElementHost.EnableModelessKeyboardInterop()但这仅适用于从表单创建的WPF Windows.我只创建WPF UserControls并在ElementHost控件中托管它们.
我看到一篇关于Dispatcher.Run()的帖子,它有点工作但是打破了表单的其余部分:
System.Windows.Threading.Dispatcher.Run();
Run Code Online (Sandbox Code Playgroud)
该PreviewKeyUp,PreviewKeyDown,KEYUP和的KeyDown事件的所有火上的文本框,但很可惜没有文字在文本框中显示出来.
我对Windows消息了解不多,但是使用WinSpector我注意到没有WM_GETTEXT消息来自TextBox(如果它们甚至应该是我不知道的话).
我还创建了一个新的Windows窗体项目,并在那里做了同样的事情,它工作正常,所以它必须是如何在Rhino 3D引擎中创建和停靠窗口的问题.
以下是不起作用的示例代码:
ElementHost el = new ElementHost();
System.Windows.Controls.TextBox t = new System.Windows.Controls.TextBox();
t.Width = 100;
t.Text = "TEST";
el.Child = t;
panel1.Controls.Add(el);
Run Code Online (Sandbox Code Playgroud) 是不是有一种方便的方法从java.util.Date到XMLGregorianCalendar?
我正在尝试使用并行化来提高绘制具有层次排序对象的3D场景的刷新率.场景绘制算法首先递归地遍历对象树,并从中构建绘制场景所需的有序数据的有序数组.然后它多次遍历该数组以绘制对象/覆盖等.从我读到的OpenGL不是一个线程安全的API,我假设数组遍历/绘图代码必须在主线程上完成,但我我想我可能能够并行化填充数组的递归函数.关键问题是必须按照对象在场景中出现的顺序填充数组,因此所有将给定对象与数组索引相关联的功能必须按正确顺序完成,但是一旦分配了数组索引,我可以使用工作线程填充该数组元素的数据(这不一定是一个简单的操作).所以这是我想要的伪代码.我希望你能理解xml-ish线程的语法.
recursivepopulatearray(theobject)
{
<main thread>
for each child of theobject
{
assign array index
<child thread(s)>
populate array element for child object
</child thread(s)>
recursivepopulatearray(childobject)
}
</main thread>
}
Run Code Online (Sandbox Code Playgroud)
那么,是否可以使用OpenMP执行此操作,如果是这样,怎么做?是否有其他并行化库可以更好地处理这个问题?
附录:为了回应Davide要求进一步澄清的请求,让我详细解释一下.让我们说场景是这样排序的:
-Bicycle Frame
- Handle Bars
- Front Wheel
- Back Wheel
-Car Frame
- Front Left Wheel
- Front Right Wheel
- Back Left Wheel
- Back Right Wheel
Run Code Online (Sandbox Code Playgroud)
现在,这些对象中的每一个都有很多与之相关的数据,即位置,旋转,大小,不同的绘图参数等.另外,我需要在这个场景上进行多次传递才能正确绘制它.一个通道绘制对象的形状,另一个通道绘制描述对象的文本,另一个通道绘制对象之间的连接/关联(如果有).无论如何,如果我必须多次访问它,从这些不同的对象中获取所有绘图数据是相当慢的,所以我决定使用一个通道将所有数据缓存到一维数组中,然后实际所有绘图传递只看数组.问题在于,因为我需要以正确的顺序进行OpenGL推送/弹出,所以数组必须处于代表树层次结构的正确深度优先搜索顺序中.在上面的示例中,必须按如下方式对数组进行排序:
index 0: Bicycle Frame
index 1: Handle Bars
index 2: Front Wheel
index 3: Back Wheel …Run Code Online (Sandbox Code Playgroud) .net ×3
c# ×2
wpf ×2
app-config ×1
asp.net ×1
audit ×1
c++ ×1
cocoa ×1
database ×1
date ×1
drawing ×1
elementhost ×1
encryption ×1
generics ×1
grails ×1
interop ×1
java ×1
json ×1
master-pages ×1
methods ×1
objective-c ×1
openmp ×1
powershell ×1
textbox ×1
wcf ×1
web-services ×1
xml ×1