Приложение .Net MVC всегда перенаправляет для входа на публичную страницу - PullRequest
0 голосов
/ 03 июня 2019

Среда: .Net 4.6.2, MVC 5.2.4, VS 2017. После добавления общедоступной страницы / страницы по умолчанию в мое существующее веб-приложение и оформления класса контроллера с помощью [AllowAnonymous] в локальной среде отладки мое приложение всегда показываетстраница входа с URL localhost: 12345.Ниже то, что я сделал, что мне не хватает?TIA

  1. маршрут к странице по умолчанию в RouteConfig.cs

    public static void RegisterRoutes (RouteCollection маршруты) {rout.IgnoreRoute ("{ресурс} .axd / {* pathInfo} ");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new string[] { "mydomain.web.Controllers" }
        );
    }
    

    }

  2. Контроллеры / HomeController
[AllowAnonymous]
public class HomeController : Controller
{
    public ActionResult Index()
    {
       return View();
    }
}

проверка конфигурации IIS Express

         <site name="mydomain.web" id="2">
                    <application path="/" applicationPool="Clr4IntegratedAppPool">
                        <virtualDirectory path="/" physicalPath="E:\mydomain.web" />
                    </application>
                    <bindings>
                        <binding protocol="http" bindingInformation="*:52792:localhost" />
                    </bindings>
                </site>
my Views / Home / Index.cshtml

@ {Layout = null;}

   <html><head><meta name="viewport" content="width=device-width" /><title>Index</title></head><body><div></div></body></html>
web.config
<authentication mode="Forms">
     <forms loginUrl="~/Account/Login" name="AuthClientUser"
           timeout="60" slidingExpiration="true" cookieless="UseCookies" 
           path="/">
     </forms>
</authentication>
http трафик

запрос: http://localhost:12345 ответ: 302 найдено, местоположение: / Account / Login? ReturnUrl =% 2f

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

это, вероятно, тэг Forms в вашем web.config заставляет ваше приложение вызывать URL «~ / Account / Login», так как считает, что ваш пользователь не аутентифицирован, но в вашем контроллере такого маршрута нет.

попробуйте изменить форму LoginUrl в вашей конфигурации на существующий маршрут индекса "~ / Index", если хотите, или создайте новое действие для обработки этого маршрута.

0 голосов
/ 04 июня 2019

Пожалуйста, не бери в голову.Раздел авторизации web.config запрещает всем анонимным пользователям, я забыл это.

...