向ASP.Net项目添加表单身份验证导致401.2未授权?

我试图回顾性地将表单身份验证插入到最初使用VS 2013和ASP.Net 4.0使用无身份验证模板创建的ASP.Net项目中

我已经按照MSDN上的建议将其添加到system.web下的Web Config中

<authentication mode="Forms">
      <forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH">
      </forms>
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>

当我启动站点(IIS 7)时,URL重定向到Logon.aspx页面,但后来我得到 Error message 401.2.: Unauthorized: Logon failed due to server configuration.

在IIS中,我为匿名和基于表单的身份验证启用了网站 .

我在这里错过了什么吗?我认为ASP.net在没有使用身份验证模板时可能会设置一个隐藏的设置?

Edit :问题与此处报道的相同:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2920a4e2-775a-4aa7-bfff-4931fa0a4e9a/azure-website-forms-authentication-issue?forum=windowsazurewebsitespreview

看起来表单身份验证不能与ASP.net模板项目一起使用存在问题 . :( . 它与“空ASP.Net Web应用程序”工作正常,但任何其他人遇到此问题 .

回答(2)

3 years ago

经过多次挖掘,答案是删除ASP.net模板附带的Friendly URLS Nuget .

3 years ago

如果使用友好的URL(只需从web.config中的loginUrl中删除.aspx)

更改web.config文件身份验证 . 在这种情况下它将是

<authentication mode="Forms">
      <forms loginUrl="Logon" name=".ASPXFORMSAUTH">
      </forms>
</authentication>