2014-02-10 5 views
5

Я в процессе изменения нашей реализации аутентификации использую идентификатор MVC5 ASP.NET с Owin.Настроить значение cookie в MVC5 Идентификатор ASP.NET

Однако нам необходимо интегрировать наш вход с другими связанными приложениями и веб-сайтами в том же домене. В настоящее время мы делаем это путем совместного использования файлов cookie между приложениями по нескольким поддоменам. Печенье в очень специфическом формате и алгоритме шифрования, которое может использовать множество приложений и технологий (т. Е. Не все в .NET или на одном сервере).

Я обнаружил, что в App_Start ConfigureAuth.cs вы можете установить app.UseCookieAuthentication, чтобы указать такие вещи, как имя файла cookie и субдомен файла cookie (например, ASP.NET Identity Cookie across subdomains).

Это очень хороший старт, но мне также необходимо изменить фактическое значение cookie как конкретного формата и алгоритма шифрования.

Кто-нибудь знает, как настроить значение и тип шифрования, используемые для создания и чтения файлов cookie?

Спасибо за любую помощь, Saan

ответ

11

CookieAuthenticationOptions класс имеет свойство TicketDataFormat, которая предназначена для этой цели. Вы можете реализовать пользовательский объект ISecureDataFormat и достичь этого. По умолчанию этот атрибут TicketDataFormat назначен, если вы его не переопределили.

app.UseCookieAuthentication(new CookieAuthenticationOptions() 
{ 
    TicketDataFormat = new MyCustomSecureDataFormat() 
}); 

public class MyCustomSecureDataFormat : ISecureDataFormat<AuthenticationTicket> 
{ 
    private static AuthenticationTicket savedTicket; 

    public string Protect(AuthenticationTicket ticket) 
    { 
     //Ticket value serialized here will be the cookie sent. Encryption stage. 
     //Make any changes if you wish to the ticket 
     ticket.Identity.AddClaim(new Claim("Myprotectionmethod", "true")); 
     return MySerializeAndEncryptedStringMethod(ticket); 
    } 

    public AuthenticationTicket Unprotect(string cookieValue) 
    { 
     //Invoked everytime when a cookie string is being converted to a AuthenticationTicket. 
     return MyDecryptAndDeserializeStringMethod(cookieValue); 
    } 
} 
+0

только то, что я искал. благодаря – Saan

Смежные вопросы