我是web api的新手,我似乎遇到了在post方法中获取已登录用户名的问题.我正在使用
RequestContext.Principal.Identity.Name
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只是返回一个空字符串.它在我的get方法中工作正常,但不在帖子中.这是我的整个方法
[Route("receive")]
[HttpPost]
public HttpResponseMessage Receive(PostmarkInboundMessage message)
{
if (message != null)
{
// To access message data
var headers = message.Headers ?? new List<Header>();
// To access Attachments
if (message.Attachments != null)
{
var attachments = message.Attachments;
var c = new CVService();
var user = string.IsNullOrEmpty(RequestContext.Principal.Identity.Name) ? "unknown" : RequestContext.Principal.Identity.Name;
c.UpdateLog(user);
foreach (var attachment in attachments)
{
// Access normal members, etc
var attachmentName = attachment.Name;
// To access file data and save to c:\temp\
//if …Run Code Online (Sandbox Code Playgroud) 我只是想知道当我注册它时是否可以调用我的服务中的方法。
public interface IDataService
{
User GetUserById(int id);
void SaveUser(int id, User user);
}
public class DataService : IDataService
{
public User GetUserById(int id)
{
// do stuff
};
public void SaveUser(int id, User user)
{
// do stuff
};
public void InitialiseService() { };
}
Run Code Online (Sandbox Code Playgroud)
当我注册此组件时,是否可以调用 InitialiseService 来初始化我的服务?
builder.RegisterType<DataService>()
.Keyed<IDataService>(FiberModule.Key_DoNotSerialize)
.AsImplementedInterfaces()
.SingleInstance();
Run Code Online (Sandbox Code Playgroud)