我使用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"太
但在这种情况下,它会抛出"此页面有一个重定向循环" ..
请帮助我,我对此非常困惑:我想彻底删除身份验证。
答案 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}}中进行更改。