我想禁用要求一个MVC控制器操作的身份验证
本文关键字:MVC 一个 控制器 操作 身份验证 | 更新日期: 2023-09-27 18:03:07
我创建了一个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>
有一个对整个应用程序的身份验证,我想放弃我的mvc应用程序的一个特性的身份验证。所以我在我的web.config
中添加了以下代码<location path="ControllerName">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
使用这段代码,它工作得很好
可以帮助解决您的问题的事实是,您可以有多个web。配置文件,如果你放一个web。在项目中的子目录中配置,然后可以包含仅针对该子目录的配置选项。因此,你可能想尝试添加一个子文件夹,只包含你想公开的控制器,然后创建一个单独的web。允许打开访问子目录的配置文件。根据这个答案关于通配符在web。配置文件,这里是示例代码,应该足够作为一个独立的web。配置提供
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
这样,您就不必纠结于指定您想要访问的控制器或操作,因为它们的区别是由目录结构中的文件组织来决定的。