我有一个在IIS7下运行的ASP.net MVC3应用程序,启用了表单身份验证。在应用程序的文件夹下还有一个共同托管的Nancy服务。
问题是,只要Nancy服务返回401(未授权)状态,请求就会自动重定向到登录页面。
有没有办法让ASP.net忽略从该文件夹返回的401错误,只返回原来的json响应?
答案 0 :(得分:0)
我知道这已经过时但无论如何我都会回复。
听起来你有MVC网站的Forms Auth,并且在/nancy
要在该目录路径中禁用身份验证,您可以在web.config中添加location
,您很可能已经设置了Nancy来运行。
类似的东西:
<location path="nancy">
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</httpHandlers>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</handlers>
</system.webServer>
</location>
您在这里需要做的就是允许匿名访问,这可以通过将authorization
添加到system.web
来完成。像这样更新system.web
:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</httpHandlers>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
现在应该忽略该文件夹的身份验证。
答案 1 :(得分:-1)
在控制器中,您可以使用 AllowAnonymousAttribute
绘制动作(或整个控制器)[AllowAnonymous]
public ActionResult DoSomething()
{
return View();
}