2
我使用此代碼創建了一些聲明,我在登錄應用程序時獲取了值。我想在我的一些API控制器中使用「Id」的聲明值,如何在Asp.net Web Api 2中獲取自定義聲明值 - Owin - ApiController。
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
var props = new AuthenticationProperties(new Dictionary<string, string>
{
{ "UserName", customer.FirstName }, { "Id", customer.Id.ToString() }
});
var ticket = new AuthenticationTicket(identity,props); context.Validated(ticket);
所以在控制器我有這樣的代碼:
[Authorize]
[Route("api/banners/{customerId")]
[HttpGet]
public HttpResponseMessage GetBanners(int customerId)
{
return Request.CreateResponse<IEnumerable<Banner>>(HttpStatusCode.OK, AppDataAccess.GetBanners(customerId)));
}
而且我想更改代碼以這一個:
[Authorize]
[Route("api/banners")]
[HttpGet]
public HttpResponseMessage GetBanners()
{
int CustomerId = SOME FUNCTION THAT GETS THE CLAIM VALUE I WANT (ID)
return Request.CreateResponse<IEnumerable<Banner>>(HttpStatusCode.OK, AppDataAccess.GetBanners(customerId)));
}
我一直在研究,但我只是找到了AuthorizationFilterAttribute但它只是在路線上使用它,有沒有什麼方法可以讓你知道我可以建立這個功能,所以我只是在控制器中調用它?
我使用Microsoft.AspNet.Identity.Owin 2.0.0
感謝您的幫助