2012-03-21 13 views
5

私は、ユーザーがアプリ内で複数のサイトを作成できるコンテンツ管理システムを作成しています。各サイトは認証を持つことができます。私は、web.configにそれぞれを追加することなく、複数の認証Cookieを持つ方法を見つけようとしています。アプリケーションを起動するときにプログラムで作成する必要があります。これは可能ですか?プログラムごとに複数の認証Cookieを持つ方法

Ex。

SecureApp:http://localhost/CTMS - サイト

CustomSite更新するための認証が必要です。http://localhost/CTMS/Custom1は - SecureApp

とは別の認証がうまくいけば、これは理にかなっている必要があります。あなたがこれを行うことができます

答えて

8

-

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); 

を次にあなたは、彼らがこのクッキー持っているかどうかを確認するために、着信要求をチェックするコードを書くことができます - 質問を書き込んだ後

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

を、これは私が終わったアプローチでありますやっていく。ありがとう! –

+0

優れたソリューション。私はこれをMVC 5アプリケーションの1つに採用しました。 – Tommassiov

関連する問題