Как разрешить анонимную аутентификацию для индекса в конвейере owin? - PullRequest
0 голосов
/ 27 апреля 2018

Моя страница индекса в приложении MVC 5 возвращает неавторизованный код состояния. Я настроил свое приложение под IIS 10.0 без аутентификации для управления аутентификацией в конвейере owin:

<system.web>
    <compilation debug="true" targetFramework="4.7.1" />
    <httpRuntime targetFramework="4.7.1" />
    <authentication mode="None" />
    <pages>
        <namespaces>
            <add namespace="System.Web.Helpers" />
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Web.WebPages" />
        </namespaces>
    </pages>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <clear />
        <add name="Owin" verb="" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb"/>
    </handlers>
</system.webServer>

Здесь мой контроллер разрешает анонимное действие по индексу:

[Authorize]
public class SPAController : Controller
{
    [AllowAnonymous]
    public ActionResult Index()
    {
        return View();
    }
}

И мой конвейер, где я подозреваю, что что-то упустил:

// Enable static file serving for the current application before authentication phase
app.UseStaticFiles(new StaticFileOptions() {
    RequestPath = new PathString(""),
    FileSystem = new PhysicalFileSystem(HostingEnvironment.MapPath("~/"))
});

Обновление

Я тоже безуспешно пытался:

[Authorize]
public class SPAController : Controller
{
    [OverrideAuthorization]
    [AllowAnonymous]
    public ActionResult Index()
    {
        return View();
    }
}

и без атрибутов

...