Architecture :: Process Of Creating An Audit Trail System?
Jun 9, 2010
I am in the process of creating an audit trail system. Simple enough. Certain fields require audit trail. What is the best design concept to allow this to work in multiple applications without having to change much? I would of course leave it to the admin of the site to add what fields should be audited, but the logic is the problem. Would implementing the interface IComparable be a place to start? My initial thinking is to compare 2 arrays against eachother and do an insert of what fields are in question. Array1 are the fields in the form, array2 are the fields from the sql table that require auditing.
View 8 Replies
Similar Messages:
Jul 13, 2010
We are developing a web application using asp.net and sql server. We are required to do an Audit trail for the application. As I understand this, an audit trail would basically be for all the Inserts, Updates and Deletes on the data base right? Now the way to approach this is that I have an Audit Trail Table in the DB that populates after every insert,update or delete is fired (Manually writing the script within the DAL). However any DB changes directly fired from SQL Management studio will NOT be recorded (for obvious reasons :P).
To cater for that I could create a trigger and that takes care of everything. I also did some googling and found out that SQL server has the ability to do audit trail. However the problem with using triggers is that I will NOT get the user information that logged in the website. I will get the sql user but I dont give two hoots about that, I am concerned about the website user. A solution that I figured out was either
a) Have an audit trail from my web application and also have trigger set up. On the audit report, I simply show an audit log from web application and and audit log from sql server.Obvious problems with this approach: over head. Writing to two different sets of tables on EVERY DB CHANGE.
b) I have a column called UserId ON EVERY DB TABLE. Then I create a trigger to capture all the DB changes. I pass this userId on every table I change (insert,update,delete) and the get this id from the trigger.
Obvious setbacks: unneccesary userid column in every table I do appologize for the long post. Basically I need an audit log that does log all the db changes (including direct hack to db) but at the same times gives me user login information for those db changes that were made FROM the web application.
View 4 Replies
May 24, 2010
I have a question regarding the record audit trail with EF. Recently we have started working on a application that has to have an record audit trail.Just few tables have Guid as PK, the rest of them have Int32 standard Identity setup.
The quick solution we have found is to wire up an event handler on SavingChanges and get all Added, Deleted and Modified records. But the problem is that the Inserted records for the tables that have Int32 as PK are audited with PK value of 0.
the code for the event handler looks like this:
[Code]....
View 2 Replies
Oct 11, 2010
I want to implement audit trail in my project. This implies keeping track of changes made in DB and later generating a report for specific data.
I'm looking for solutions other than triggers as in to have a generic solution for DB Audit trail in my project.
We'll probably be using Entity Framework 4.0. I want to explore the audit trail capabilities for the same any pointers in this directions would be helpful. also any ideas for DB Audit trail if we use Enterprise Library Data Application Block. Note:SQL Server 2008 has auditing features, but we'll not be using the Enterprise version.
View 1 Replies
Feb 1, 2010
My ASP.NET intranet web application uses Windows Authentication, and I would like to record the following details:
1) Windows ID
2) Session Start Time
3) Session Stop Time
4) URL being browsed to (optional)
I've got some basic code setup in "Session_Start" method of the Global.ASAX to log session start times (seen below), but that's it so far. I have the feeling this is a primitive approach and there are "better" ways of doing this. So I really have two questions:
1) Is this the right way to go about doing this? If not what are some other options?
2) If this is the right way, do I just need to drop some code in the "Session_End" method to record the time they exit, and thats a complete solution? Does this method always get called when they close the browser tab they have the site open in, or do they have to close the entire browser (I don't have logout functionality)? Any way users can skip over this session end method (or start for that case)?
Dim connsql As New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("MyConnectionstring").ConnectionString)
Dim cmdsql As System.Data.SqlClient.SqlCommand = connsql.CreateCommand
cmdsql.CommandText = "BeginUserSession"
cmdsql.CommandType = Data.CommandType.StoredProcedure
Try
cmdsql.Parameters.Add("@windowsid", System.Data.SqlDbType.VarChar, 30, "windowsid")
cmdsql.Parameters("@windowsid").Value = Session("UserInfo").identity.name
If connsql.State <> System.Data.ConnectionState.Open Then connsql.Open()
cmdsql.ExecuteNonQuery()
connsql.Close()
Catch ex As Exception
Finally
If connsql.State <> Data.ConnectionState.Closed Then connsql.Close()
End Try
'Stored Proc records start time
View 3 Replies
Sep 7, 2010
I've written a aspx.net(C#) page that after the user has done what they do on the page they hit a Submit button. The Submit button
1) takes the work the users was producing on the page and writes it to a file.
2) attempts to execute a batch file.
The call to the batch file is executed via:
protected void Execute123EDI()
{
try
{
string File = @"c:80sAdminSendV80s.bat";
lblCancelled.Text = lblCancelled.Text + File;
Process proc = new System.Diagnostics.Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.LoadUserProfile = false;
proc.StartInfo.UserName = "administrator";
proc.StartInfo.RedirectStandardOutput = true;
System.Security.SecureString secPass = new System.Security.SecureString();
string paswd = "123abc";
for (int i = 0; i < paswd.Length; i++)
{
secPass.AppendChar(paswd[i]);
}
proc.StartInfo.Password = secPass;
proc.StartInfo.FileName = File;
proc.Start();
FileStream fs = new FileStream(@"c:80sAdminSendV80sOutput.log", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.Write(proc.StandardOutput.ReadToEnd());
proc.WaitForExit();
sw.Close();
proc.Close();
}
catch(Exception ex)
{
lblDebug.Text = lblDebug.Text + ex.Message + "<br/>";
}
If I watch the processes tab in Task Manager on the web server I see "cmd.exe" under the context of 'administrator' but it just hangs. For test purposes c:SendV80s.bat: copy c: oot.ini c:zzz.txt
If I logon onto the webserver's console and execute SendV80s.bat it works and exits without issue. But when I execute the same batch file via the Submit button it gets stuck executing in Task Manager/Process. I believe this has something to do with the fact that cmd is not running in a full environment/desktop context. I just noticed this on the actual console of the webserver (not in my RDP console but console 0 instead)
A pop-up box stating: CMD.exe Application error The application failed to initialize properly (0xc0000142). Click OK to terminate the application. And when I click on the OK button my ASPX page's WaitForExit is satisfied and the continues processing normally.
View 2 Replies
Feb 26, 2010
I'm working on an ASP.net app I'm trying to execute a process remotely , using System.Diagnostics.Process class here's my code:
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:TestCommand.exe");
startInfo.Domain = "myDomain";
startInfo.UserName = "MyUserName";
SecureString sec = new SecureString();
foreach (char item in "MyPassword")
{
sec.AppendChar(item);
}
sec.MakeReadOnly();
startInfo.Password = sec;
startInfo.UseShellExecute = false;
Process.Start(startInfo);
I keep receiving an exception with the message "Logon failure: unknown user name or bad password". Im absolutelly sure that i'm submiting my correct username/pwd
View 1 Replies
Jul 6, 2010
I tried to install Visual Studio Prof 2010 trail version in my system, but i got an error saying 'Please remove/uninstall Visual Studio 2010 load test controller' to proceed installation. i uninstalled my previous VS2008 software from system and i could not find anything like 'Remove/Uninstall Visual Studio 2010 load test controller' software in my Add/Remove Programs.
View 1 Replies
Apr 19, 2010
Is it possible to pre-process the web form (e.g. replace some strings with other strings) when it's requested while not executed?
View 4 Replies
Nov 3, 2010
I am not sure exactly which topic this post should go under...
Here is what I am doing.
I have a web form where a person will edit their blog article. At some point, once they are done editing, they can click a button "Publish Blog Now".
Once the blog is published in the click event on the server side I am doing a query to get a list of subscriber email address.
These are people who subscribed to this blogger and wish to receive an email notification whenever this person publishes a new blog.
What I just realized today is that my hosting provider only allows me to send a maximum of 200 emails per hour. Which means in my loop I need to sleep for roughly 20 seconds between each email notification sent. But I dont want the user who clicked the publish button to have to sit there and wait while that process is going.
How can I return to the user but yet continue to run some code on the server side to send out the emails in the background even if user closes web browser?
This is an ASP.NET web application targeting .net 4.0 and I am using c# as my back-end language and VS2010 as my development tool.
View 7 Replies
Apr 11, 2010
Coming to my task, I have to schedule a process which will delete all the files in the paticular table with particular key.I have the stored procedure for the deletion. What all I need is, How to schedule this process in the application server.?
View 5 Replies
Dec 23, 2010
My web application currently requires users to upload files, after which I take it for "further processing". This processing is VERY time consuming and can take a while before the control gets back to the user. I would like to run this in the background and not have the user wait until this completes.
I know this question has been asked in this very forum before but I'm not able to understand or I'm not able to proceed in the right direction. My understanding is there are a few ways I can go about this
a) create a BackgroundWorker process in my Global.asax file that will spawn a process and take care of the activity.
b) create a web service that will do the processing for me .. (how?)
c) Use Ajax (Again how?)
View 2 Replies
Aug 23, 2010
I have some logging that has to be done, which are some database update or inserts.
However this logging is of no importance to the user, so I only want to process the data/logs after the page is completed for the user.
As of now, if I process the data while the page is loading, I go from 1.4 to 2.0 speed (server side time processing of code), which is quite a bit comparing it is of no use to the user.
So I want this code only executed after that the page is complete.
I've been checking out Ajax, async pages etc, but the problem is it still gets executed before the page is rendered to the client, which means the client will have to wait longer then it is not being processed.
I've been checking out Threadpool.queueBackgroundWorker, however if I get it correct, this will still be executed before the page is shown to the user, as it has to complete before the prerender.
Then I thought about creating a new thread, and do the processing there, which would not have my page waiting to complete the data/logging.
However when I have 100 or 200 users loading pages at the same time, then that would mean I would be creating 200 threads on those loads, which I doubt will be good for performance. So if I want to solve this, I would have to create my own threadpool and only assign for example a max of 40 threads to it which can process the data.
All I want to get done, are some update/inserts into database after the page is rendered and shown to the user. I don't want the logging to slow down the pageload for the users obviously. I want that logging or no logging makes no difference to the pageloadtime for the user at all.
View 5 Replies
Aug 20, 2010
I'm trying to write a text file form my web page, But every time I'm having this error System.IO.IOException: The process cannot access the file '.txt' because it is being used by another process. This is mode code for write file.
Code:
protected void btnSave_Click(object sender, EventArgs e)
{
string serverpath = Server.MapPath("\proactivcust.ini");
string mappath = "";
string qbpath = "";
string archpath = "";
string workpath = "";
try
{
System.IO.StreamReader file = new System.IO.StreamReader(serverpath);
[Code.....]
View 9 Replies
Jul 6, 2010
I need to perform an operation such as extracting the data for past one year from DB and doing some manipulations and finally displaying the excel graphs for the extracted data. The extraction of data takes almost 6-7 hrs. What i require is that user enters the required data (date and some other details )through an asp.net page and submits it and then closes the browser. Now a process should get started which will extract all data and create the graphs and finally send an email to the particular user.
View 6 Replies
May 5, 2010
I am trying to use the unmanaged ImageMagick library in my ASP.NET application from the command line using System.Diagnostics.Process. Basically, users will upload an .eps file to the site, and then I will run the command line command to convert it into .jpg. This is the code I'm using to try and run the command:
Dim proc As New System.Diagnostics.Process
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.RedirectStandardError = True
proc.StartInfo.FileName = "C:Program Files (x86)ImageMagick-6.6.1-Q16convert.exe"
proc.StartInfo.UseShellExecute = False
proc.StartInfo.Arguments = String.Format("{0} {1}", Server.MapPath("~/logo/test.eps"), _
Server.MapPath("~/certificates/temp/test-1234.jpg"))
proc.StartInfo.CreateNoWindow = True
proc.Start()
I am able to run this code just fine on our development Win 2k3 server, but not on our production Win 2k3 Server. I get the error "System.ComponentModel.Win32Exception: Access is denied". The main between the two servers is that the production is 64-bit and runs Plesk to manage multiple domains. I've tried adding rights asp.net user to the ImageMagick directory. The PS Admin says that in the case of Plesk, it's the same account that I use to access the site in VS using FPE. Does anyone know what I might do in order to allow this process to run on my production server?
View 1 Replies
Jan 13, 2011
When I run System.Diagnostics.Process.Start from my console application it works but the same code when I run from my web service hosted in IIS doesn't work.
Is it some thing to do with ASP.Net privileges?? if yes how can I configure it from my C# code.
View 1 Replies
Mar 10, 2011
I need to use [System.Diagnostics.Process ] class in my web project to execute a *.exe file. I can also use the [CreateNoWindow ] property to make it invisible while it does it job behind the scenes. However, webhosting companies do not allow .exe files to be executed on the web. I read some where that if I place the same code (which invokes the .exe file) in a separate class library project and use the respective [dll] in my web application, it will work.
View 4 Replies
Jun 30, 2010
I can not run System.Diagnostics.Process.Start(@"wmplayer.exe") in code behind under IIS, - nothing happens, though I can do it successfully using Visual Studio ASP.NET Development server. I read topic http://support.microsoft.com/kb/555134 and made as recommended: 1) Made ASP.NET worker process run in SYSTEM account 2) Enabled IIS Admin Service to interact with desktop and rebooted serivce. - wmplayer.exe does not start, even its process does not start. I tried start notepad.exe and it partly works - process starts, I see only window frame, but not menu and can not interact with it. The other thing I tried is to put it under out-of-process (IIS virtual folder properties) and gave the process administrative rights (changed identity in Component Services): no result.
View 6 Replies
Aug 31, 2010
I have code that runs under IIS6 & ASP.Net 2.0, that won't run under IIS7.5 on Windows Server 2008 R2. I am assuming I have a configuration problem - but I don't know. On a Windows Sever 2008 R2 system: From inside IIS (v7.5), an ASP.NET process will not connect to port 21 (ftp) on the ICS (using System.Net.Sockets.Socket), it fails, logging an error that it cannot connect to the system at nnn.nnn.nnn.nnn. But, from a command prompt on the same server though, I am able to connect via ftp to the system at nnn.nnn.nnn.nnn. I am using the DefaultAppPool.
Here's a code snippet:
[Code]....
And the connect throws an exception - unable to connect I'm firing up wireshark soon and I'll see what if anything is getting across the wire? particularly if you think it's administrative in nature, cause that's a real weak point for me.
View 2 Replies
Jan 7, 2011
I have installed VS2008 on my development machine have winxp sp2 OS.i have created one aspx page where i have placed one button. On click of that button i want to open osk.exe(on screen keyboard). i an using following code
System.Diagnostics.Process.Start("osk.exe")i works fine there.Now for testing i deployed that application to testing server having Win7 OS and IIS7.0. It is not working there.
View 2 Replies
Jul 26, 2010
System.Diagnostics.Process.Start not work with IIS, but on ASP.NET Development Server
View 3 Replies
Jul 15, 2010
I've an application where in am trying to show a slideshow directly on page load.. for that am using the following code
[Code]....
Its perfectly working on the dev environment but when deployed onto iis7.. am not able open the file..
I've given all folder rights for asp.net account and network service..
View 5 Replies
Jan 25, 2011
I'm currently looking into a project where specific users can create web forms on the fly and save them as templates whcih are data bound.I know InfoPath has this ability; but you need SharePoint unfortunately we do not have this. I have looked into XForms, but found nothing helpful within the .net arena.Has anyone done something similar or know of a product within the .net arena which could be used.
View 1 Replies
Feb 17, 2010
Below is my class file.
[Code]....
View 1 Replies