2012-03-21 12 views
5

Kullanıcının uygulama içinde birden çok site oluşturabileceği bir içerik yönetim sistemi yazıyorum. Her sitenin kimlik doğrulaması olabilir. Her birini web.config dosyasına eklemek zorunda kalmadan, uygulama için çoklu kimlik doğrulama tanımlama bilgilerinin nasıl bulunacağını anlamaya çalışıyorum. Uygulama başladığında bunları programlı olarak oluşturmam gerekiyor. Mümkün mü?Tek bir uygulama için birden çok kimlik doğrulama tanımlama bilgisine nasıl sahip olunur?

Ex.

SecureApp:

SecureApp

ayrı kimlik İhtiyaçları Umarım bu mantıklı -: - http://localhost/CTMS/Custom1 http://localhost/CTMS siteleri

CustomSite güncellemek için kimlik doğrulaması gerekiyor.

cevap

8

Bunu yapabilirsin -

FormsAuthenticationTicket _ticket = new FormsAuthenticationTicket(_version, _name, _issueDate, _expirationDate, _isPersistent, _userData, _cookiePath); 

string _encryptedTicket = FormsAuthentication.Encrypt(_ticket); 

HttpCookie _cookie = new HttpCookie("customticket", _encryptedTicket); 

HttpContext.Current.Response.Cookies.Add(_cookie); 

O zaman siz de bu çerezi olup olmadığını görmek için gelen istekleri kontrol etmek kod yazabilirsiniz - soru yazdıktan sonra

HttpCookie _cookie = HttpContext.Current.Request.Cookies["customticket"]; 

if(_cookie){ 

_encryptedTicket = _cookie.Value; 
FormsAuthenticationTicket _ticket = FormsAuthentication.Decrypt(_encryptedTicket); 

    if(!_ticket.Expired) { 
     IIdentity _identity = new FormsIdentity(_ticket); 
     IPrincipal _principal = new GenericPrincipal(_identity, new string[0]); //Identity plus string of roles. 
    } 
} 
else{ 
//dostuff 
} 
+0

, bu şimdiye sona yaklaşımdır ile devam ediyor. Teşekkürler! –

+0

Mükemmel çözüm. Bunu MVC 5 uygulamalarımızdan birinde kabul ettim. – Tommassiov

İlgili konular