|
'Dim xmlfile As Stream = My.Resources.ResourceManager.GetStream("xxxx.xml")
Dim reader As New StringReader(My.Resources.ResourceManager.GetString("xxxx.xml"))
'fills datagridview with xml information'
Dim xdoc As XmlDocument = New XmlDocument
xdoc.Load(reader.ReadToEnd())
I need some help finding a solution to the code above. I'm using an embedded resource xml file. It comes up as null every time. Are there any suggestions on what to do in this situation or should I take another route.
modified on Wednesday, November 10, 2010 8:13 PM
|
|
|
|
|
Have you read the documentation? See the parameters description here[^]. It says: "URL for the file containing the XML document to load." You are passing it the content of the file to load.
|
|
|
|
|
I have been reading but it there a way to add onto an embedded resource?
|
|
|
|
|
Not a supported one, no. Resources are read-only.
Why? Because your .EXE is locked by the system while it's running.
|
|
|
|
|
As Dave has told you, I think an embedded resource cannot be modified at runtime. However, depending on what your requirements are, Application settings[^] might be enough.
|
|
|
|
|
Its just that I'm trying to secure this file and encrypting the xml is fine but when decrypting its been one big head ache. I'm trying to secure this file but the application needs to be able to read the contents of the file.
|
|
|
|
|
So, what I understand is that you have the encrypted file as a resource on your application, don't you? Then use a CryptoStream to read it.
|
|
|
|
|
Need some advice!
In the beginnings of a new project and have to look at system security
Phase I is a hot desk based windows application
Phase II is an extranet solution to extend to remote offices
unsure of how to work this to the best advantage of dot net. Does anyone know of any good reading material or solutions that I should read upon?
Many thanks
Simon
As barmey as a sack of badgers
Dude, if I knew what I was doing in life, I'd be rich, retired, dating a supermodel and laughing at the rest of you from the sidelines.
|
|
|
|
|
I think a multitier architecture might be a good approach.
|
|
|
|
|
Im currently developing these in a multi tier methodology but
1. the desktop application has to be "hot desk" enabled
2. and a extranet
but at present both areas are seperate, but the manager would like to have the security aspect a single unit that serves both applications
Thanks
Simon
As barmey as a sack of badgers
Dude, if I knew what I was doing in life, I'd be rich, retired, dating a supermodel and laughing at the rest of you from the sidelines.
modified on Wednesday, November 10, 2010 5:15 PM
|
|
|
|
|
How to answer this question depends entirely on what you're trying to secure, which you haven't said anything about.
Are you taking about CD-KEY type security? Communication channels? Remoting? Database security? Storing passwords? Credit card info? ..., ..., ..., ...
|
|
|
|
|
Thanks for your reply Dave.
What I am trying to achieve is that in the desktop side of the application users need to login to the apication for use and their appropriate security levels to be given. Phase I is supposed to be built around a hot desk environment potential one user could sit at a different desk per day.
In phase II they want to introduce an extranet for the remote offices. Again when they log into the application, their security levels / restrictions are set
My boss would like to have an approach where only one set of logon information is stored regardless if they log in one day via the extranet on a client site and another day via the windows desktop application another.
Is this possible and what should I read up on? To achieve his vision?
As barmey as a sack of badgers
Dude, if I knew what I was doing in life, I'd be rich, retired, dating a supermodel and laughing at the rest of you from the sidelines.
|
|
|
|
|
Simon_Whale wrote: Does anyone know of any good reading material or solutions that I should read upon?
MSDN P&P on security[^], from 2005 - already marked outdated. The accompanying checklist is here[^]
I are Troll
|
|
|
|
|
|
This might be a touch simplistic, but isn't this exactly what a web-based deployment was designed to solve?
I'm just wondering...
|
|
|
|
|
It is the reason why many applications are web based. That and the ease of deployment/update.
|
|
|
|
|
I would agree with you, but it is something they dont want to go down, a full web based solution
As barmey as a sack of badgers
Dude, if I knew what I was doing in life, I'd be rich, retired, dating a supermodel and laughing at the rest of you from the sidelines.
|
|
|
|
|
windows XP, vb6
My vb6 project requires to reference A.dll in order to run properly. In my PC, the compiled .exe program runs normally. BUT when i deployed it to another computer, it does not run normally. UNTIL I realised i have to register the dll on that computer.
I did not realize it had to do with registering the dll because I did not register the dll on my PC before. It seems that when I compile my project, vb6 automatically registers A.dll. Therefore it ran nomally on my PC.
Therefore, I have coded my program to auto-register the A.dll itself. And I tested on my PC, it was ok. But again when I deployed to another PC, it doesn't work.
QUESTION:
Even after I unregistered the A.dll on my PC, I still can run my program normally! For some reason, vb6 keeps locking on to my dll. and I cant seem to unregister it. Therefore I am unable to test my auto-registering code!
How can I unregister the A.dll on my PC, so that I can test out the auto-registering of the A.dll itself?? I would prefer to perform the testing on my PC than to deploy it over and over again to find out if my code works.
|
|
|
|
|
It's been long from the last time I used VB6, so maybe I am wrong but, have you tried to deploy the dll file in the same location as your exe file? As far as I can remember, this way you can forget about registering the library.
|
|
|
|
|
blurboy wrote: I did not realize it had to do with registering the dll because I did not register the dll on my PC before. It seems that when I compile my project, vb6 automatically registers A.dll.
True. When you compile a .DLL project under VB6, it automatically does the registration for you. Which makes sense because VB6 is only capable of tareting COM-based .DLL's. It can't generate a normal function .DLL.
blurboy wrote: Therefore, I have coded my program to auto-register the A.dll itself.
This is normally handled by the installer for your app, not the app itself. But, it's still possible to do so long as you realize that not everyone who uses your app may be able to register a COM .DLL.
blurboy wrote: Even after I unregistered the A.dll on my PC, I still can run my program normally! For some reason, vb6 keeps locking on to my dll. and I cant seem to unregister it. Therefore I am unable to test my auto-registering code!
REGSVR32 /u mydllname.dll will unregister that .DLL files GUIDs. Once the registrations are gone, the bindings shouldn't work any more. But, there may be old GUID data from older versions of your .DLL that are still registered. There's no way to automatically remove all of those references out of the Registry. You'll have to hunt them down and remove them by hand.
|
|
|
|
|
REGSVR32 /u mydllname.dll will unregister that .DLL files GUIDs. Once the registrations are gone, the bindings shouldn't work any more. But, there may be old GUID data from older versions of your .DLL that are still registered. There's no way to automatically remove all of those references out of the Registry. You'll have to hunt them down and remove them by hand.
Already tried so. REGSVR32 /u mydllname.dll.
But when i double click on my exe to run. it still run normally!
|
|
|
|
|
Your best bet is a "clean build" PC to test on - I use VMWare Workstation for this - it allows you to rollback the state of the Virtual Machine so you can go back to "clean" for testing the installers.
As for the mystery of it still working on your PC - it depends a bit on the way the DLL is called from VB - if you are using CreateObject as in e.g. wordObj = CreateObject("Word.Application") then the registry is searched first for Word.Application class then it picks up a GUID in that to get actual reg info point to the OLE DLL. This is known as "Late Binding". Early binding is what you get when you add the DLL to the references in your VB project. Can't remember for sure but there is a good chance that when you open the VB project if it is early bound and it doesn't find the registry info that it automatically re-registers the DLL - and it is likely it does this even if you don't run the project (because it needs the reference to be working to even allow a compile). I recommend ProcMon (old Sysinternals tool - now Microsoft) to spy on what is going on and ow the registry info for your DLL is being found.
|
|
|
|
|
VB 6 will look in the WIN\system or system32 folders even if a dll is unregistered. To test your auto register you would need to either relocate the dll or rename it with a different suffix. Additionally, assure that the installer is adding the dll file to the new system. The Software Packager (To build the installation package) will have a step for you to indicate what files you want to add, especially if you are using a custom dll or ocx. The packager does not automatically assure that all the necessary dll’s are added. Simply dragging or copying an executable to a new machine does not add the needed dlls. The installer will add and register the dlls.
Good luck
It was broke, so I fixed it.
|
|
|
|
|
Thanks everyone for the help! appreciate it
|
|
|
|
|
Hi all
I have written a piece of code that retrives data from database table and does some operation with the retrived data.
Code:
Dim ensartRows As List(Of EnsartRow) = EnsartRow.GetDBRows(cad.parent, cad.enfant, GetConnectionStr())
For Each e In ensartRows
If Not e.MatchesDataLineOtherFields(cad) Then
WriteAddFromEA(cad, e)
End If
Next
That gets a list from the database for matching values in a text file.
Now I want to do an operation for all that is not in the list(for all that does not have a match in the text file).
eg: a FOR for for the non matched list with the text file.
How to accomplish this?
Thanks in Advance.
|
|
|
|