C# 指定允许访问错误日志的用户角色
由于某些原因,我无法指定应该允许访问错误日志的角色。无论我输入什么角色(我有管理员、超级和测试角色),我的应用程序都会重定向到登录屏幕,这是我未经授权时的预期行为。若我选择使用*允许所有角色,那个么它可以正常工作,但当我需要将其限制为超级角色时,它允许所有角色 我的web.config文件中包含以下内容,允许在登录时访问所有角色:C# 指定允许访问错误日志的用户角色,c#,asp.net-mvc-3,elmah,elmah.mvc,C#,Asp.net Mvc 3,Elmah,Elmah.mvc,由于某些原因,我无法指定应该允许访问错误日志的角色。无论我输入什么角色(我有管理员、超级和测试角色),我的应用程序都会重定向到登录屏幕,这是我未经授权时的预期行为。若我选择使用*允许所有角色,那个么它可以正常工作,但当我需要将其限制为超级角色时,它允许所有角色 我的web.config文件中包含以下内容,允许在登录时访问所有角色: <add key="loginUrl" value="~/Login/" /> <add key="elmah.mvc.disableHandler
<add key="loginUrl" value="~/Login/" />
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.route" value="elmah" />
但当我将allowedRoles行更改为:
<add key="elmah.mvc.allowedRoles" value="Super" />
它不允许访问任何人,只将他们发送到登录屏幕
任何想法都将不胜感激。这是我第一次尝试使用Elmah,它看起来真的很好,但我还不太熟悉它,所以如果有人需要更多信息来帮助我,请询问,我会提供
编辑
我现在已将Emlah配置为使用SQL Server记录错误,不确定这是否会对任何可能的答案产生影响。您是否尝试过(从):
...
您是否尝试过(从):
...
在使用Elmah 1.2时,我也遇到了类似的问题,然后我升级到Elmah MVC,它成功了
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<appSettings>
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.allowedRoles" value="CKAdmin" />
<add key="elmah.mvc.route" value="elmah" />
</appSettings>
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
<elmah>
<security allowRemoteAccess="false" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="D:\\ELMAH" />
</elmah>
</configuration>
在使用Elmah 1.2时,我也遇到了类似的问题,然后我升级到Elmah MVC,它成功了
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<appSettings>
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.allowedRoles" value="CKAdmin" />
<add key="elmah.mvc.route" value="elmah" />
</appSettings>
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
<elmah>
<security allowRemoteAccess="false" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="D:\\ELMAH" />
</elmah>
</configuration>
您应该进行以下更改:
<appSettings>
......
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.allowedUsers" value="Super" />
</appSettings>
......
您应该进行以下更改:
<appSettings>
......
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.allowedUsers" value="Super" />
</appSettings>
......
我使用的是Elmah.Mvc nuget包,它似乎没有使用.axd文件。我使用的是Elmah.Mvc nuget包,它似乎没有使用.axd文件。