2

Я создаю проект Asp.net Core 1.0 (WebApi) с использованием Visual Studio 2015. Шаблон - это основное веб-приложение ASP.NET (.NET Core) \ WebApi (без аутентификации) выбран).asp.net core 1.0 получить идентификатор Windows в webapi

enter image description here

В ValuesController, я хотел бы получить Windows Identity от клиента, который звонит этот метод.

using System.Security.Claims; 
using Microsoft.AspNetCore.Identity; 
using Microsoft.AspNetCore.Http; 
... 
[Route("api/[controller]")] 
    public class ValuesController : Controller 
    { 
     [HttpGet] 
     [Route("GetIdentity")] 
     public string GetIdentity() 
     { 
      //method1 
      var userId = User.GetUserId(); 
      //method2 
      var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; 

      return userId; 
     } 
    } 

В настоящее время нет результата возвращается, как ожидается, в method1 и method2. Любые мысли pls?

+1

Пожалуйста, исправьте меня, если я пропущу что-то очевидное. Но как структура должна получить идентификатор клиента, если аутентификация не используется? –

ответ

3

Без какой-либо аутентификации веб-структура не сможет определить личность вашего пользователя.

Выберите шаблон проекта "ASP.NET Core Application (.NET Core)\WebApi «и изменить аутентификацию с» No Authentication «в любой аутентификации вы найдете соответствующий, например,» Windows Authentication».

Тогда вы можете получить доступ к User элемент контроллера, если он помечается [Authorize] атрибут.

[Authorize] 
[Route("api/[controller]")] 
public class ValuesController : Controller 
{   
    [HttpGet] 
    public string Get() 
    { 
     return User.Identity.Name; 
    } 
} 

Если вы хотите иметь отдельные учетные записи пользователей, а затем выбрать шаблон MVC (вместо WebAPI). Тогда вы можете зарегистрировать отдельные счета и использовать свои учетные данные для аутента ication.

Если вы начали с шаблона без аутентификации, вы можете включить проверку подлинности Windows в launchSettings.json в папке Properties.

{ 
    "iisSettings": { 
     "windowsAuthentication": true, 
     "anonymousAuthentication": false, 
     ... 
    }, 
    ... 
} 
+0

Спасибо, rboe. Я могу сделать с «Аутентификацией Windows». Проблема здесь в том, как он настроен из проекта, где «Аутентификация Windows» не выбрана в начале? Каковы шаги? – beewest

+0

Хорошо, теперь я вижу. Я отредактировал свой пост и добавил подсказку, чтобы настроить 'launchSettings.json'. –

+0

сладкий. спасибо rboe – beewest

 Смежные вопросы

  • Нет связанных вопросов^_^