2012-01-05 136 views
-1

我正在尝试将Elmah日志记录添加到web服务。用户通过身份验证以确认他们是有效的用户,但他们从未真正登录过。因此,当ELMAH抛出并记录错误时,用户名始终为空。能够以编程方式填充该值会很有帮助,但我似乎无法找到任何方法来执行此操作。是否有可能在没有用户登录的情况下更改用户的例外情况?

我的代码非常简单:

public static void Add(Exception ex) 
{ 
    try 
    { 
     ErrorSignal.FromCurrentContext().Raise(ex); 
    } 
    catch (Exception ex2) 
    { 
     throw ex2; 
    } 
} 

我似乎无法找到一个方法来创建我们指定的用户名自定义异常。

+1

只是出于好奇 - 为什么你认证的用户,如果你不需要登录他们? – 2012-01-05 22:14:01

+0

这是一个Web服务,所以我们需要确保用户有能力使用Web服务,然后需要将它们登录到数据库中,但除此之外,我们不需要做任何事情。我可以登录用户,但这会涉及到我重写一堆代码,以便将正确的信息传递给我的例外。希望避免这种情况。 – Cyfer13 2012-01-05 22:27:34

+0

验证用户身份的代码在哪里,您应该能够存储用户名或域用户名,一旦通过身份验证..您的代码示例在这里并没有真正帮助很多对不起...... – MethodMan 2012-01-05 22:33:59

回答

0

如果可以,我建议以具有相应权限的模拟用户身份运行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工具来记录在注册表中的域用户名和密码,该用户将负责所有的数据库交互等。

相关问题