User.Identity.Name возвращает пустое значение, а IIS запрашивает учетные данные при размещении API - PullRequest
0 голосов
/ 01 мая 2019

User.Identity.Name пусто при размещении на IIS.Также IIS запрашивает учетные данные, когда IP-адрес указывается в URL, а не в localhost.Посоветуйте, пожалуйста, как это исправить.

В IIS включена Windows и анонимная аутентификация.

Я попытался включить и отключить анонимную аутентификацию в IIS

namespace System.Web.Mvc
{
    public class AccessController : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var isAuthorized = base.AuthorizeCore(httpContext);
            if(!isAuthorized)
            {
                return false;
            }

            return base.AuthorizeCore(httpContext);
        }
    }
}    

Мой контроллер

[System.Web.Http.HttpGet]
[AccessController]
[System.Web.Http.Route("api/GetUser")]
public string GetCurrenTUser()
{
    if(User.Identity.IsAuthenticated)
    {
        return User.Identity.Name.Replace("EMEA\\", "");
    }

    return "false";

}

Web.Config

<system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
    <authentication mode="Windows"/>
</system.web>
...