|
You are looking for license management. There are numerous articles that can help you with this; a quick google will find you many examples.
This space for rent
|
|
|
|
|
Morning sir,
i will search google but from your side please share some good resource and links to have good knowledge for license management.
i am not sure my intention is clear or not. i will install a winform apps in client pc. client pc may have no internet connection. so how could i expiry the apps depend on expiry date because client may change his pc system date every day before running my winform apps. so please share some logic to develop apps which will not depend on client pc system's date and time.
thanks & have good weekend.
|
|
|
|
|
Mou_kol wrote: looking for good discussion. thanks You're not the first one to ask; so I'd assume you looked for it by Googeling.
To repeat the answer; there are larger companies that spend a lot of money on copy-protections and they have given up on winning that war. I need not muck with the systems' time, just to install your software in a VM, and disallow writing.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
You can't.
Unless there is a connection to an external, trusted, reliable time source - and without an internet connection there isn't - the only time and /or date source you have is the system clock. And that is so easily spoofed or played with that you are wasting your time trying work round that.
What I would suggest is: trust your users. Think about how much of your time you will invest on coding unbreakable security, how much your time is worth, and how many users you will manage to convert to paying customers as a result. Do not forget to figure in all the customers you annoy by having an overly-rigid security system that penalizes legitimate users and the number of sales you will lose as a result of that. Then look at the cost of your software. If it's cheap, you are probably wasting your time. If it's seriously expensive, then you are probably wasting your time - as that attracts hacked versions; Adobe Photoshop has had man-years spent on security in the past, only for a cracked version to be released the same day as the official product!
Remember that it's easy to lose a good reputation, and very hard to get it back - and penalizing a single legitimate user by mistake can really harm your standing.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
"Turning back" the system clock doesn't work too well if the app itself depends on a "current" clock in order to function properly.
One has to be pretty desperate to live with "bad" output dates in a "crack".
If "device clocks" aren't synched, you can create wonderful messes.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
suppose in a pc dotnet and java runtime both install but when we run dotnet application then how CLR understand that he need to take control of the apps?
when and who associate dotnet application and CLR? i guess OS windows. if it is true then how windows os does it?
i search google but found no relevant link. so my request is please some one discuss the same here in details or redirect me to right article.
|
|
|
|
|
|
thanks a lot Sir for sharing such valuable links.
i have one small question that when we click on dotnet exe or vb6 exe file then how controls goes to windows OS?
for dotnet exe file there is CLR Header, which tells windows that it should use the CLR Loader to read the CLR Header's metadata. but what happen for vb6 exe file when we click on that to run?
please share some knowledge. thanks
|
|
|
|
|
VB6 is an old language which has nothing to do with .NET (i.e., a VB6 executable has a PE Header but no CLR header). What happens when you click an executable compiled from VB6 is that the assembler code produced by the compilation process is simply executed.
Inside the executable: a VB programmer's guide to the portable executable format[^]
I would not spend too much time on VB6, though, as it is quite outdated nowadays.
"I'm neither for nor against, on the contrary." John Middle
|
|
|
|
|
thanks for your another reply sir.
hence my knowledge is low so i am curious to know the inner story of various tool and technology like how they run. java application has any PE header ?
thanks for your time sir. good day
|
|
|
|
|
ALL .EXE's have the PE header that tells the Windows Loader how to load the executable. It doesn't matter what runtimes the .EXE runs under.
|
|
|
|
|
Morning, thanks a lot for reply.
i am not java guy but i heard java do not come with exe file....so what happen in case of java apps when it run on windows OS?
i heard java has .jar file which is self executable....so jar has PE header?
C and C++ generate exe file when compile....so C and C++ generated exe file has PE header?
please share the knowledge. thanks
|
|
|
|
|
JAR files are not executable. They are just a bunch of data that Java interprets as code, referred to as "bytecode". Java is a virtual machine environment with its own instruction set. This bytecode isn't run natively by your CPU like .EXE executables.
You apparently don't know how file associations work. Ever double-click a .TXT file or a Word file? You're actually launching the executable associated with that file extension.
For .txt files, the command line launched is
%SystemRoot%\system32\notepad.exe %1
where the %1 is replaced by the full path to the .txt file you double-clicked.
For .jar files, it's no different. The command line launched is something like this:
"C:\Program Files (x86)\Java\jre1.8.0_102\bin\javaw.exe" -jar "%1" %*
Again, the %1 is replaced by the full path to the .jar file.
|
|
|
|
|
Hi,
I have a view which has two list boxes, one on left contains all the selection, two buttons to "add or remove" selection and one more listbox on right which contains selected values.
I am able to get the list of selected values, but what I would like is the list of unselected values on posting. The object in the model is null for the list of unselected values.
How can pass the list of unselected values?
Thank you!
|
|
|
|
|
VK19 wrote: I am able to get the list of selected values
VK19 wrote: How can pass the list of unselected values?
You provide the values? So, "all values" minus "selected values" equals?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
List<Value> UnSelectedValues = ListOfAllValues.Except(ListOfSelectedValues).ToList(); But, keep in mind: [^].
«... thank the gods that they have made you superior to those events which they have not placed within your own control, rendered you accountable for that only which is within you own control For what, then, have they made you responsible? For that which is alone in your own power—a right use of things as they appear.» Discourses of Epictetus Book I:12
|
|
|
|
|
Hi
In an ASP.NET page I am generating buttons dynamically in a table, like this:
Button lmButCls = new Button();
lmButCls.Click += new EventHandler(EditUser);
lmButCls.ID = dbDataReader["LOGONNAME"].ToString();
lmButCls.Text = dbDataReader["LOGONNAME"].ToString();
newCell.Controls.Add(lmButCls);
My eventhandler:
public void EditUser(object sender, EventArgs e)
{
to do code
}
The buttons shows up, but when clicking the "EditUser" nothing happens.
Anybody with an idea to solve this problem?
Best regards, Brian
|
|
|
|
|
Dynamically Created Controls in ASP.NET[^]
You're probably not recreating the controls when the page posts back; or you're not recreating them early enough.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
public void ResetPassword(UserModel model, string Name)
{
using (var db = new sortit_internEntities())
{
string emailAddress = (from info in db.users
where info.name.Equals(model.Name)
select info.email).Single();
if (!string.IsNullOrEmpty(emailAddress))
{
string confirmationToken =
WebSecurity.GeneratePasswordResetToken(model.Name);
dynamic email = new Email("ChngPasswordEmail");
email.To = emailAddress;
email.UserName = model.Name;
email.ConfirmationToken = confirmationToken;
email.Send();
}
}
}
for resetting password for login and yes I am new to MVC, this code is in business layer of MVC for kind Information
|
|
|
|
|
Put the appropriate Using statement at the top of the class module and make sure you have included a reference to the appropriate assembly
|
|
|
|
|
Ya I had add all references for it!
|
|
|
|
|
Look at the error message:
The type or Namespace name "Email" could not be found
It's pretty explicit!
The compiler does not know what the Email class is: it hasn't got one for you to use. Either you haven't added a reference to the assembly containing the class to your project, and a using statement at the top of the file to the namespace the class is in; or just the using statement is missing; or you do not have a class called Email at all.
Hover the mouse over the word "Email" and a little blue bar will appear at the beginning. Hover the mouse over that and a drop down will open suggesting ways to fix it.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Nobody else caught this, but why are you using "dynamic"? It's not for the use case what you're using it. That line should read:
Email email = new Email("ChngPasswordEmail");
Dynamic treats your object as an Object type, removes all static checks at compile time, and slows down the code a bit due to having to resolve method calls at runtime. It also makes it harder to write the code and debug it. It should be rare that you have to use the dynamic type.
|
|
|
|
|
I need some help getting this to work. I am trying to read from an XML file that is called "user.config" and is located in "C:\Windows\SysWOW64\config\systemprofile\AppData\Local\MyAppName\user.config". each of the values are Base64 Encrypted (which is nested with more xml). My goal is to be able to read each value independently and store as a variable for later use and to append into textbox1 so that a summary of the settings can be displayed.
Sample XML:
="1.0"="utf-8"
<configuration>
<userSettings>
<AppCentral.App.Service.Core.Properties.Settings>
<setting name="AppXml" serializeAs="String">
<value>PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8QXBwTW9kZWwgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQogIDxDR1VJRD4xMjM0NTY3ODk8L0NHVUlEPg0KICA8Q0lEPjEyMzwvQ0lEPg0KICA8Q051bWJlcj4xMjM0PC9DTnVtYmVyPg0KICA8Q05hbWU+VEVTVDwvQ05hbWU+DQogIDxIYXNDSEluc3RhbGw+ZmFsc2U8L0hhc0NISW5zdGFsbD4NCiAgPFZlbmRvcklEPjA8L1ZlbmRvcklEPg0KPC9BcHBNb2RlbD4=</value>
</setting>
<setting name="TXml" serializeAs="String">
<value>PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8QXBwVE1vZGVsIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KICA8Q0dVSUQgeHNpOm5pbD0idHJ1ZSIgLz4NCiAgPENJRD4xMjM8L0NJRD4NCiAgPElzTWFuYWdlZFRBbGxvd2VkPmZhbHNlPC9Jc01hbmFnZWRUQWxsb3dlZD4NCiAgPElzT25lVGltZVRFbmFibGVkPmZhbHNlPC9Jc09uZVRpbWVURW5hYmxlZD4NCiAgPE9uZVRpbWVUQ2hhcmdlPjIuMDAwMDwvT25lVGltZVRDaGFyZ2U+DQogIDxXYWl0aW5nUGVyaW9kSG91cnM+MzwvV2FpdGluZ1BlcmlvZEhvdXJzPg0KICA8SXNUVGF4YWJsZT5mYWxzZTwvSXNUVGF4YWJsZT4NCiAgPFRUYXhSYXRlPjQuMDAwMDwvVFRheFJhdGU+DQo8L0FwcFRNb2RlbD4=</value>
</setting>
<setting name="DXml" serializeAs="String">
<value>PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8QXJyYXlPZkRNb2RlbCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCiAgPERNb2RlbD4NCiAgICA8Q0RJRD4xPC9DRElEPg0KICAgIDxOYW1lPkQxPC9OYW1lPg0KICAgIDxUeXBlPjE8L1R5cGU+DQogICAgPENQb3J0PjE8L0NQb3J0Pg0KICAgIDxSSW5kZXg+MTwvUkluZGV4Pg0KICAgIDxJc0FjdGl2ZT5mYWxzZTwvSXNBY3RpdmU+DQogICAgPE9wYWNpdHk+MDwvT3BhY2l0eT4NCiAgICA8U2NoZWR1bGVzIC8+DQogIDwvRE1vZGVsPg0KICA8RE1vZGVsPg0KICAgIDxDRElEPjI8L0NESUQ+DQogICAgPE5hbWU+VDE8L05hbWU+DQogICAgPFR5cGU+ODwvVHlwZT4NCiAgICA8Q1BvcnQ+NTwvQ1BvcnQ+DQogICAgPFJJbmRleD4xPC9SSW5kZXg+DQogICAgPElzQWN0aXZlPmZhbHNlPC9Jc0FjdGl2ZT4NCiAgICA8T3BhY2l0eT4wPC9PcGFjaXR5Pg0KICAgIDxTY2hlZHVsZXMgLz4NCiAgPC9ETW9kZWw+DQogIDxETW9kZWw+DQogICAgPENESUQ+MzwvQ0RJRD4NCiAgICA8TmFtZT5EMjwvTmFtZT4NCiAgICA8VHlwZT4xPC9UeXBlPg0KICAgIDxDUG9ydD4zPC9DUG9ydD4NCiAgICA8UkluZGV4PjE8L1JJbmRleD4NCiAgICA8SXNBY3RpdmU+ZmFsc2U8L0lzQWN0aXZlPg0KICAgIDxPcGFjaXR5PjA8L09wYWNpdHk+DQogICAgPFNjaGVkdWxlcz4NCiAgICAgIDxEU2NoZWR1bGU+DQogICAgICAgIDxDRFNjaGVkdWxlSUQ+MDwvQ0RTY2hlZHVsZUlEPg0KICAgICAgICA8SG91clN0YXJ0PjY8L0hvdXJTdGFydD4NCiAgICAgICAgPEhvdXJFbmQ+NzwvSG91ckVuZD4NCiAgICAgICAgPElzQXZhaWxhYmxlPnRydWU8L0lzQXZhaWxhYmxlPg0KICAgICAgPC9EU2NoZWR1bGU+DQogICAgPC9TY2hlZHVsZXM+DQogIDwvRE1vZGVsPg0KPC9BcnJheU9mRE1vZGVsPg==</value>
</setting>
<setting name="CurrentVersion" serializeAs="String">
<value>1</value>
</setting>
</AppCentral.App.Service.Core.Properties.Settings>
</userSettings>
</configuration>
|
|
|
|
|