/ / ASP.NET MVC 5 - Потребител на идентичност в WCF? - asp.net-mvc, wcf, asp.net-mvc-5, asp.net-идентичност, договор за предаване

ASP.NET MVC 5 - идентификатор в WCF? - asp.net-mvc, wcf, asp.net-mvc-5, asp.net-идентичност, datacontract

В момента пиша услуга WCF, която щеизползвайте самоличността на ASP.NET, за да изпълните всички членства и свързаните с претенциите неща. (Тоест, удостоверяване, регистрация и всичко ще се извърши чрез извикване на този WCF)

[DataContract(IsReference=true)]
public class ApplicationUser: IdentityUser
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Email { get; set; }
}

Проблемът е, че "IdentityUser" е клас вMicrosoft.Aspnet.Identity.Core.Entityframework и този клас не е маркиран с атрибут DataContract. Пиша операция в моя WCF услуга за връщане на ApplicationUser на повикващия уебсайт.

Някаква идея как да се постигне това?

Отговори:

2 за отговор № 1

Създайте обект за прехвърляне на данни (DTO), който има aдоговор за данни, който има същите свойства като клас ApplicationUser. Вие ще трябва да направите трансформация от вашия DTO към ApplicationUser, и по друг начин. Използвайте AutoMapper, за да направите трансформацията.

Лично аз не виждам никаква реална полза отпоставяне на сигурността зад уеб услугата на WCF. Мрежовият хоп и сериализацията / десериализацията при всяко оторизиране наистина ще задействат вашето уеб приложение.

Добра идея е да го разделите на друг слой, но този слой не трябва да бъде уеб услуга. Погледни SimpleSecurity, Той осигурява слой над ASP.NET Identity и демонстрира как да го персонализирате за потвърждение по имейл и друга подобрена функционалност. Вашата функционалност за упълномощаване не е добър елемент за разпространение, тъй като е ударен за всяка заявка от уеб клиента.