Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Windows切换到窗体身份验证_C#_Asp.net_Authentication_Webforms - Fatal编程技术网

C# 从Windows切换到窗体身份验证

C# 从Windows切换到窗体身份验证,c#,asp.net,authentication,webforms,C#,Asp.net,Authentication,Webforms,我一直在从事的一个web项目中使用了windows身份验证。由于所有其他表单都有身份验证,我想在这个特定项目中也实现它。我跟随本文添加了新的登录页面,但在运行project之后,我被重定向到它以前使用的默认页面 以下是我对web.config所做的更改: <authentication mode="Forms"> <forms loginUrl="login.aspx"></forms> </authentication> <autho

我一直在从事的一个web项目中使用了windows身份验证。由于所有其他表单都有身份验证,我想在这个特定项目中也实现它。我跟随本文添加了新的登录页面,但在运行project之后,我被重定向到它以前使用的默认页面

以下是我对web.config所做的更改:

<authentication mode="Forms">
  <forms loginUrl="login.aspx"></forms>
</authentication>

<authorization>
  <deny users="?"/>
</authorization>
我可能会犯什么错误?

从Windows身份验证切换到窗体身份验证时,您需要在IIS中为应用程序禁用Windows身份验证。当您在web.config中启用表单身份验证时,它不会自动为您执行此操作

在应用程序的IIS中,很可能同时启用了窗体和Windows身份验证。我相信在这种情况下,IIS将默认为Windows身份验证,并绕过您的登录表单

要进行检查,可以执行以下操作:

转到IIS 找到您的应用程序 转到身份验证 调整以下各项: 匿名身份验证:已启用 ASP.NET模拟:已禁用 基本身份验证:已禁用 摘要身份验证:已禁用 表单身份验证:已启用 Windows身份验证:已禁用
如果您不想在登录前使用登录页,也可以禁用匿名身份验证。

您是否修改了IIS中的设置以禁用Windows身份验证?我似乎没有足够的权限修改身份验证。但是,Windows和窗体身份验证都被禁用。唯一启用的选项是匿名身份验证和ASP.NET模拟。您需要查看是否可以启用表单身份验证和禁用ASP.NET模拟,除非您在某个地方的应用程序实现中确实需要这样做。您的表单身份验证实现将处理针对Active Directory的身份验证,您至少不会为此目的使用模拟。