每天在Application_Start上打开或创建一个文本文件,并附加请求的网页,然后在Application_End



我的任务是运行一个简单的审计,该审计将记录任何用户请求的每个页面,并存储页面的数据,以及根据现有的安全调整是否授予或拒绝访问。

我的想法是在Application_Start上打开一个文本文件,而不是每个活动会话都试图写入一个可能在任何给定点被任何人打开的文件。是的,我知道这个问题。理想情况下,我需要一个好的方法或一些帮助来处理我的解决方案。

我们有一个自定义类,用于检查当前上下文是否可以从会话访问页面。我想利用该类传递请求的页面详细信息以及成功/拒绝请求的结果。问题是我不是很熟练,我还有很多东西要学。

我正在考虑这样的事情;

if (File.Exists(@"\MyServerICTEFOSMS_AUDIT" + DateTime.Today + ".txt"))
{
StreamReader read = new StreamReader(@"\MyServerICTEFOSMS_AUDIT" + DateTime.Today);
}
else
{
File.OpenWrite(@"\MyServerICTEFOSMS_AUDIT" + DateTime.Today);
}

只需打开文件并在应用程序运行期间保持打开即可。

然后在所述类中,一些现有的代码检查AD组;

CustomPrincipal principal = HttpContext.Current.User as CustomPrincipal;
if (!principal.IsInAnyRoles(roles))
{
Page.Response.Redirect("~/fos/AccessDenied.aspx");
//Write to file that is open at application level here??
return;
}

我在脑海中知道我想要实现什么,但不完全明白这是否是最好的方法。我不确定是否有任何现有的课程可以让这变得更容易。我正在使用StreamReader,StreamWriter,File.Exists,File.Open.

有人能朝着正确的方向轻推一下吗。

感谢

您试图实现的目标与日志记录非常相似。有几个库可以让你写入文本文件,Log4Net,Nlog等。

如果您不想使用这些工具中的任何一个,那么也许您应该考虑将日志记录功能和对打开文件的引用设置为静态。通过这种方式,他们将在页面调用之间共享信息。

相关内容

  • 没有找到相关文章

最新更新