6

ASP.NET MVC アプリケーションで OpenId を使用しています。素晴らしい作品:)ユーザーのOpenId識別子を取得したら(認証されてサイトに戻ったら)、ユーザーデータをロードします(表示名などを取得するため)。

ここから、私は彼らの役割も知っています。

現在の Forms.Identity にロールを割り当てる方法がわかりません。

これが私のコードです...

// Load User...
var user = GetUsers().ByOpenIdIdentifier("blahblahblahbl....");

// Here means we have a user AND all the roles, for that user.

// Forms Authenticate and Redirect.
FormsAuthentication.SetAuthCookie(user.DisplayName, true);
return RedirectToAction("Index", "Home");

認証されたユーザーにも役割が割り当てられるように、このコードを変更するにはどうすればよいですか?

アップデート

カスタム Authorize 属性の作成に関するこの Web 投稿を偶然見つけました。セッションに存在するログイン ユーザーの役割をどのようにチェックしているのかに注目してください。また、役割は列挙です:)これはかなりファンキーです、私に尋ねると:)素晴らしくてシンプルです。

考え (完全に吹き飛ばされた RoleProvider クラスと比較して?)

4

2 に答える 2

4

独自のRoleProviderを作成し、web.config ファイルに接続する必要があります。RoleProvider はユーザーの名前を取得し、その役割を把握します。 IPrincipal.IsInRoleは、構成された RoleProvider を使用してロール メンバーシップを決定します。

于 2009-06-02T13:32:14.423 に答える
1

この記事を見てください

これは、openid をメンバーシップの役割およびプロファイルと統合する簡単な方法を示しています。希望が助けになります。

于 2011-09-19T05:26:15.257 に答える