c#


ASP.NET Web API Authentication with Custom ApplicationUser With an extra Object


I've added an object 'Person' to my applicationuser class. This works fine until I want to do get and return something from this object.
My custom ApplicationUser class:
public class ApplicationUser : IdentityUser
{
public Person Person { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string authenticationType)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
//Add claims
// Add custom user claims here
return userIdentity;
}
}
And my Get:
public IHttpActionResult Get()
{
var models = _mailViewModelFactory.CreateListOfCompanyMails(_internshipCompanyRepository.GetAllCompanies());
return Ok(models);
}
And my mailViewFactory CreateListOfCompanyMails method:
public IEnumerable<MailWithNameViewModel> CreateListOfCompanyMails(IEnumerable<InternshipCompany> internshipCompanies)
{
var mailWithNameList = from internshipCompany in internshipCompanies
select new MailWithNameViewModel()
{
MailAddress = internshipCompany.Email, /* Only showing this works */
Name = internshipCompany.Person.Firstname /* When added this I get an error */
};
return mailWithNameList;
}
And my error:
{"Message":"An error has occurred.","ExceptionMessage":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.","ExceptionType":"System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"An error has occurred.","ExceptionMessage":"De objectverwijzing is niet op een exemplaar van een object ingesteld.","ExceptionType":"System.NullReferenceException","StackTrace":" bij InternCOWebApi.ModelFactory.MailViewModelFactory.<>c.<CreateListOfCompanyMails>b__0_0(InternshipCompany internshipCompany) in D:\\Documenten\\GitHub\\AppDev11_2017\\Applicatie Backend\\InternCOWebApi\\InternCOWebApi\\Models\\ModelFactory\\MailViewModelFactory.cs:regel 19\r\n bij System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()\r\n bij Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)\r\n bij Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)\r\n bij Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)\r\n bij Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)\r\n bij System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)\r\n bij System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)\r\n bij System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content)\r\n bij System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- Einde van stacktracering vanaf vorige locatie waar uitzondering is opgetreden ---\r\n bij System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bij System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bij System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"}}
If I'm understanding the situation right, then this happens because I do not use any Claims? I saw how you could do this with a string but I couldn't find it how you could do it with an Object. Your help is much appreciated.

Related Links

sql syntax problem and or code probelm?
C# Linq to XML not working with
RegEx: get first occurrence of pattern
Manually add binding at run-time
Standarized Forms C# with inheritance
lock user input into a control
Handling asp.net datasource exceptions
Detect socket disconnect in WCF
How To Use Symmetric Key To Encrypt Connection String
Is allowing the possibility of NullReferenceExceptions to occur a Bad Thing?
Comparing two values from GetValue reflection method
How to change a value without new projection in LINQ?
What is the difference between Debug Mode and Release Mode in Visual Studio 2010? [duplicate]
How to add IFRAME in SilverLight?
Don't show “Display Name” at sending e-mail
Progress Bar That Changes Text And Pictures

Categories

HOME
asp.net
algolia
packet
crash
esxi
servicenow
scapy
pip
rename
theory
ng2-charts
browsermob
bookmarklet
novacode-docx
bootstrap-datetimepicker
ejb-3.1
dev-c++
screen-scraping
connection-pooling
my.cnf
scalatest
pydub
kubectl
eclipse-jdt
border-layout
device-driver
file-conversion
icu
susy
redbean
mtm
definition
f#-fake
grails-2.0
geminabox
hdpi
lucee
ear
audio-fingerprinting
playframework-2.3
node-java
r-commander
hellosign
lattice
addressbook
copy-constructor
ownership
racket-student-languages
alfred
vga
magick.net
csc
razorengine
ooad
std
event-tracking
jts
copy-on-write
ultraedit
grunt-contrib-connect
conditional-comments
growl
gnip
im4java
disabled-control
nspopupbutton
episerver-7
code-smell
internet-radio
infor-eam
flask-mongoengine
imaplib
adabas
google-mirror-api
wpa
extensibility
jython-2.5
friendly-url
generator-expression
database-restore
libx264
blackberry-eclipse-plugin
aspmenu-control
google-email-audit-api
datasheet
ruby-1.9
rjs
overlays
designated-initializer
mass-emails
browser-state
dgml
cross-cutting-concerns

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile