J'ai implémenté un principe personnalisé pour l'identité ASP.Net, mais lorsque j'essaie d'obtenir principe personnalisé à partir HttpContext.Current.User Je reçois l'exception suivante:Personnalisé ASP.Net Principe - Impossible de convertir un objet de type 'System.Security.Principal.GenericPrincipal' en type 'Business.ICustomPrincipal'
Impossible de jeter l'objet de type 'System.Security.Principal.GenericPrincipal' taper 'VenuePortal.Business.ICustomPrincipal'.
Ma mise en œuvre est:
public interface ICustomPrincipal : IPrincipal
{
int UserID { get; set; }
string UserName { get; set; }
string Email { get; set; }
string AuthCode { get; set; }
string Title { get; set; }
}
public class CustomPrincipal : ICustomPrincipal
{
public int UserID { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string AuthCode { get; set; }
public string Title { get; set; }
public IIdentity Identity { get; private set; }
public bool IsInRole(string role) { return false; }
public CustomPrincipal(string email)
{
Identity = new GenericIdentity(email);
}
}
L'erreur jette dans ce Ninject contraignant:
kernel.Bind<ICustomPrincipal>().ToMethod(context => (ICustomPrincipal)HttpContext.Current.User).InRequestScope();
J'ai cette même solution de travail dans un autre (plus) projet donc je devine là-bas est une sorte de changement de cadre qui affecte cela? HttpContext.Current.User semble toujours retourner un IPrinciple alors ne devrait pas tout cela fonctionne?
Toute aide très appréciée.
Vraiment, c'est intéressant. Je vais devoir faire des recherches. Merci pour la réponse. – Simon
C'est intéressant, pourrais-je vous suggérer de jeter un œil sur ce que pourraient être les autres approches? –