如何从MVC项目中删除身份验证?

时间:2015-04-10 12:38:39

标签: c# asp.net-mvc

我使用Visual Studio 2013从互联网上学习MVC。

完成我的项目并通过"发布"将其部署到主机后,它完美地工作(本地也是如此)。

虽然现在,应用程序会在登录时抛出身份验证表单(发布后)。在本地它不会这样做。我想完全删除authintication,因为该网站(及其所有页面)都已打开。

我很抱歉这个枯燥的问题,但是我搜索并且无法准确找到关于我的问题的线索,可能是由于框架的那一侧完全无知..请帮忙。

我试图手动追踪事物,我有一个" startup.cs"其中包含:

 public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

        }
    }

这会将我引导至文件" Startup.Auth"自动拥有:

public void ConfigureAuth(IAppBuilder app)
        {

            // Enable the application to use a cookie to store information for the signed in user
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login")
            });
            // Use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
...

当尝试删除Startup.cs中的函数调用时,项目会立即抛出一个非常基本的登录菜单。

然后,在我的项目设置中,我保留了" windows身份验证"和#34;匿名身份验证"禁用。保持函数调用" Startup.cs"太

但在这种情况下,它会抛出"此页面有一个重定向循环" ..

请帮助我,我对此非常困惑:我想彻底删除身份验证。

4 个答案:

答案 0 :(得分:3)

您的网站应该只有enable anonymous authentication in IIS settings

此外,如果您使用的是AuthorizeAttribute,则可以使用AllowAnonymousAttribute标记应该匿名访问的控制器/操作。仍应在IIS中启用匿名身份验证。 如果您使用的是AuthorizeAttribute并且无法将其删除或使用AllowAnonymous标记操作,则应手动创建一些模拟用户标识。但这是另一个讨论的问题。

为避免重定向到登录页面,您应将身份验证模式设置为"无"在你的web.config

答案 1 :(得分:1)

在web.config中注释掉以下代码

<modules>
   <remove name="FormsAuthentication" />
</modules>

答案 2 :(得分:0)

检查您是否在web.config中设置了无模式

  <system.web>
    <authentication mode="None" />
  </system.web>

最终Web.Release.config

答案 3 :(得分:0)

我已在ConfigureAuth(app)中注释/删除了Startup.cs,并将[AllowAnonymous]添加到了我的Home控制器。您可以将其添加到要重定向到的任何控制器。如果您想重定向到与Home不同的控制器,请不要忘记在RouteConfig.cs的{​​{1}}中进行更改。