asp.net 核心 1.0 在 webapi 中获取 windows 身份
asp.net core 1.0 get windows identity in webapi
我正在使用 Visual Studio 2015 创建一个 Asp.net Core 1.0 (WebApi) 项目。模板是 ASP.NET Core Web Application (.NET Core)\WebApi(未选择身份验证) ).
在 ValuesController 中,我想从调用该方法的客户端获取 Windows 身份。
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
中预期的结果 returns。有什么想法吗?
没有任何身份验证,任何 Web 框架都无法确定您的用户身份。
选择项目模板 "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)。然后您可以注册个人帐户并使用其凭据进行身份验证。
如果您是从未经身份验证的模板开始的,那么您可以在 Properties
文件夹的 launchSettings.json
中启用 Windows 身份验证。
{
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": false,
...
},
...
}
我正在使用 Visual Studio 2015 创建一个 Asp.net Core 1.0 (WebApi) 项目。模板是 ASP.NET Core Web Application (.NET Core)\WebApi(未选择身份验证) ).
在 ValuesController 中,我想从调用该方法的客户端获取 Windows 身份。
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
中预期的结果 returns。有什么想法吗?
没有任何身份验证,任何 Web 框架都无法确定您的用户身份。
选择项目模板 "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)。然后您可以注册个人帐户并使用其凭据进行身份验证。
如果您是从未经身份验证的模板开始的,那么您可以在 Properties
文件夹的 launchSettings.json
中启用 Windows 身份验证。
{
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": false,
...
},
...
}