アプリケーションを構築し、それを Active Directory と統合しています。
そのため、アプリ ユーザーを Active Directory ユーザーに対して認証し、その後、user group and user profile
汎用プリンシパルとユーザー ID を汎用 ID に保存するなど、ユーザーのデータの一部を保存します。
私の問題は、ユーザー プロファイル データを使用したいときに、ジェネリック プリンシパルからユーザー プロファイル データを取得できないことです。
誰かがそれを行う方法を教えてもらえますか?
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];
if (authCookie == null)
{
//There is no authentication cookie.
return;
}
FormsAuthenticationTicket authTicket = null;
try
{
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
}
catch (Exception ex)
{
//Write the exception to the Event Log.
return;
}
if (authTicket == null)
{
//Cookie failed to decrypt.
return;
}
String data = authTicket.UserData.Substring(0, authTicket.UserData.Length -1);
string[] userProfileData = data.Split(new char[] { '|' });
//Create an Identity.
GenericIdentity id =
new GenericIdentity(authTicket.Name, "LdapAuthentication");
//This principal flows throughout the request.
GenericPrincipal principal = new GenericPrincipal(id, userProfileData);
Context.User = principal;
注 : 上記のコードはグローバル asax ファイルにあり、汎用プリンシパルに保存したユーザー プロファイル データをdefault.aspx
.