我正在尝试将Elmah日志添加到Web服务。用户将通过身份验证以确认他们是有效用户,但实际上他们从未真正登录过。因此,当ELMAH引发并记录错误时,用户名始终为空白。能够以编程方式填充该值将很有帮助,但是我似乎找不到任何方法来实现此目的。
我的代码很简单:
public static void Add(Exception ex)
{
try
{
ErrorSignal.FromCurrentContext().Raise(ex);
}
catch (Exception ex2)
{
throw ex2;
}
}
我似乎找不到在我们指定用户名的情况下创建自定义异常的方法。
最佳答案
如果可以,我建议以具有适当权限的模拟用户身份运行Web服务。当然,这将取决于用户的身份验证方式,但这是一个选择。
这是我们的操作方法(添加到Web服务的web.config中):
<identity impersonate="true" userName="registry:HKLM\Software\OurApp\ASPNET_SETREG,userName" password="registry:HKLM\Software\OurApp\ASPNET_SETREG,password"/>
我们使用aspnet_setreg实用程序在注册表中记录域用户名和密码,然后该用户负责所有数据库的交互等。
关于c# - 是否可以在没有用户登录的情况下更改异常(exception)用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750596/