私は、ウェブサービスからユーザーに関する全トラック情報を保存しようとしています。これは現在認証されているユーザーに関する情報なので、カスタムのIIdentity実装にその情報を格納することが理にかなっていると思いました。MVC2 ::カスタムIIdentityクラスはどのように使用しますか?
カスタムMagicMembershipProvider.GetUser(string id, bool userIsOnline)
は、webserviceを呼び出し、すべてのフィールドが入力されたMagicMembershipUser
インスタンス(部門、電話番号、その他の従業員情報)を返します。
カスタムメンバーシッププロバイダーとカスタムメンバーシップユーザーの両方が正常に動作します。は、すべてのコントローラでアクセスIPrincipal User
オブジェクトに、メンバーシップユーザー情報を入れるための最良の方法は何と
?
私は、IIdentity、IPrincipal、およびMVC2アプリケーションでの役割認可を使用してセキュリティのプログラムフローに取り組んでいますが、ここでは本当に苦労してメンタリングを使用することができます。そこには、部品に関するインターネットトーンの記事がありますが、全体についてはそれほど多くはありません。
編集
私の最高の推測では、これまでFormsAuthenticationService
でHttpContext.Current.User
を割り当てることです:
public void SignIn(string userName, bool createPersistentCookie)
{
if (String.IsNullOrEmpty(userName))
throw new ArgumentException("Value cannot be null or empty.", "userName");
try
{
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
MagicMembershipUser magicUser = _provider.GetUser("", false)
as MagicMembershipUser;
MagicIdentity identity = new MagicIdentity(userName, magicUser);
GenericPrincipal principal = new GenericPrincipal(identity, null);
HttpContext.Current.User = principal;
}
catch (Exception)
{
throw;
}
}
_providerのインスタンシエーションがありません - なぜですか? –
@ScottSEA、この '_provider'変数は、認証されたユーザ情報を取得することができる何でもかまいません。 –
ここでこのメソッドでインスタンス化するのは安全でしょうか? ...何らかの理由でAuthorizeCore(HttpContextBase httpContext)のために「適切なメソッドが見つからない」というエラーが表示される –