/ / ASP.NET MVC 5 - IdentityUser w WCF? - asp.net-mvc, wcf, asp.net-mvc-5, tożsamość asp.net, kontrakt danych

ASP.NET MVC 5 - IdentityUser w WCF? - asp.net-mvc, wcf, asp.net-mvc-5, asp.net-identity, datacontract

Obecnie piszę usługę WCF, która będzieużywać tożsamości ASP.NET do wykonywania wszystkich czynności związanych z członkostwem i roszczeniami. (To znaczy uwierzytelnianie, rejestracja i wszystko zostanie wykonane przez wywołanie tego 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; }
}

Problem polega na tym, że „IdentityUser” jest klasą wZespół ramowy Microsoft.Aspnet.Identity.Core.Entity, a ta klasa nie jest oznaczona atrybutem DataContract. Piszę operację w moim Usługa WCF, aby zwrócić ApplicationUser na stronę wywołującą.

Każdy pomysł, jak to osiągnąć?

Odpowiedzi:

2 dla odpowiedzi № 1

Utwórz obiekt transferu danych (DTO), który makontrakt danych, który ma te same właściwości co klasa ApplicationUser. Będziesz musiał dokonać transformacji z twojego DTO do ApplicationUser i odwrotnie. Użyj AutoMappera, aby dokonać transformacji.

Osobiście nie widzę żadnych realnych korzyścistawianie bezpieczeństwa za usługą internetową WCF. Przeskok sieciowy i serializacja / deserializacja na każdej autoryzacji naprawdę popchną twoją aplikację internetową.

Dobrym pomysłem jest rozdzielenie go na inną warstwę, ale ta warstwa nie musi być usługą internetową. Spojrzeć na SimpleSecurity. Zapewnia warstwę nad ASP.NET Identity i pokazuje, jak dostosować go do potwierdzenia e-mailem i innych ulepszonych funkcji. Twoja funkcja autoryzacji nie jest dobrym elementem do dystrybucji, ponieważ jest trafiana dla każdego żądania od klienta WWW.