У меня есть следующий метод, который будет вызываться в моем веб-интерфейсе
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
Мне нужно установить роль в качестве заявки на основе утверждений, если имя пользователя в контексте.
Но значения нетдля context.username
Мне нужно знать, где было задано имя пользователя.
Пожалуйста, ознакомьтесь с полным контекстом
Writing context
ClientId:; UserName:; Password:; Scope:System.String[]; Ticket:; IsValidated:False; HasError:False; Error:; ErrorDescription:; ErrorUri:; OwinContext:Microsoft.Owin.OwinContext; Options:Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerOptions; Request:Microsoft.Owin.OwinRequest; Response:Microsoft.Owin.OwinResponse;
Writing Request
Environment:Microsoft.Owin.Host.SystemWeb.CallEnvironment.AspNetDictionary; Context:Microsoft.Owin.OwinContext; Method:POST; Scheme:https; IsSecure:True; Host:holmesdev.nam.nsroot.net:4321; PathBase:/hisapi; Path:/token; QueryString:; Query:Microsoft.Owin.ReadableStringCollection; Uri:https://server.nam.nsroot.net:4321/hisapi/token; Protocol:HTTP/1.1; Headers:Microsoft.Owin.HeaderDictionary; Cookies:Microsoft.Owin.RequestCookieCollection; ContentType:application/x-www-form-urlencoded; CacheControl:; MediaType:; Accept:application/json, text/plain, */*; Body:Microsoft.Owin.Host.SystemWeb.CallStreams.InputStream; CallCancelled:System.Threading.CancellationToken; LocalIpAddress:1XX.171.XX.XX5; LocalPort:4321; RemoteIpAddress:10.XX.XX3.XX1; RemotePort:591XX; User:;
Writing Response
Environment:Microsoft.Owin.Host.SystemWeb.CallEnvironment.AspNetDictionary; Context:Microsoft.Owin.OwinContext; StatusCode:200; ReasonPhrase:OK; Protocol:; Headers:Microsoft.Owin.HeaderDictionary; Cookies:Microsoft.Owin.ResponseCookieCollection; ContentLength:; ContentType:text/html; Expires:; ETag:; Body:Microsoft.Owin.Host.SystemWeb.CallStreams.OutputStream;
Как заполнить "username"?
Единственное место, где я получаю значение для идентификатора пользователя, находится в контроллере API.показано ниже:
[Route("api/User/UpdateUserDetail")]
[HttpPost]
public HttpResponseMessage UpdateUserDetail(User userData)
Нет имени пользователя, доступного в SimpleAuthorizationServerProvider.cs, как я должен перенести идентификатор пользователя из контроллера в SimpleAuthorizationServerProvider.