我创建了一个mvc应用程序我不希望在我的应用程序中对一个功能进行身份验证。我希望用户能够在没有登录的情况下从URL打开页面。现在如果我输入URL直接打开该功能,那么它将带我到登录页面。我想在一个功能中绕过身份验证过程。 我在web.config中尝试过以下代码。
<location path="ControllerName">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我还在控制器的某些操作中添加了[AllowAnonymous]属性。
我在web.config中为验证编写的以下代码。
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication"/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
<remove name="AuthorisationModule"/>
<add name="AuthorisationModule" type="ProjectName.AuthorisationModule(which is for autentication), Project Name"/>
</modules>
答案 0 :(得分:4)
整个应用程序都有一个身份验证,我想丢弃我的mvc应用程序的一个功能的身份验证。所以我在web.config中添加了以下代码
<location path="ControllerName">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
因此使用此代码可以正常工作。
答案 1 :(得分:0)
可能对您的问题有所帮助的事实是您可以拥有多个web.config文件 - 如果您将web.config放在项目的子目录中,那么您可以包含仅特定于该子目录的配置选项。因此,您可能希望尝试添加子文件夹以仅包含要公开使用的控制器,然后创建单独的web.config文件,以允许对该子目录的开放访问。根据{{3}},这里的示例代码应该足以作为提供
的独立web.config<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
通过这种方式,您可以不必指定要访问的一个控制器或操作,因为区别在于目录结构中文件的组织。