只有登录页面需要匿名授权访问。听起来您没有正确设置匿名身份验证。
当我们在 IIS 中实现表单认证时,表单认证和匿名认证是并行启用的。然后我们将为所有用户创建允许身份验证规则并在站点级别拒绝匿名用户。
<authentication mode="Forms">
<forms name=".MyCookie" loginUrl="Login" protection="All" timeout="60" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
其次,我们需要创建一个授权规则,允许匿名访问登录页面。
<location path="Login">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
当您通过表单身份验证时,IIS 将发送一个表单身份验证 cookie,其用户名由您的应用程序决定。可以是appsetting中的key,也可以是数据库中的用户名。
1.
FormsAuthentication.SetAuthCookie(UserInfo.UserName, false, FormsAuthentication.FormsCookiePath);
2.
FormsAuthenticationTicket
3.
FormsAuthentication.RedirectFromLoginPage(UserInfo.UserName, false);
您需要确保 auth_user 和应用程序池身份有权访问图像源。
https://support.microsoft.com/en-us/help/301240/how-to-implement-forms-based-authentication-in-your-asp-net-applicatio