6

Jon Galloway が概要を説明しています。 web-forms-and-asp-net-mvc-4-templates.aspx - ASP.NET MVC 4 の新しいメンバーシップ機能について。インターネット プロジェクト テンプレートは、ASP.NET のコア メンバーシップ プロバイダーから離れて、 SimpleMembershipProvider と OAuth。

simplemembership を参照して、オープン ソースhttp://aspnetwebstack.codeplex.com/を使用して拡張できるかどうかを知っている人はいますか?

http://msdn.microsoft.com/en-us/library/webmatrix.webdata.simplemembershipprovider simplemembership プロバイダー クラスを確認しましたが、そのメソッドには匿名 ID への参照がありません。

それが不可能な場合、それを行うための ExtendedMembershipProvider の構築に関する情報を誰かが持っていますか? brgds!

更新情報: pro.asp.netmvc3 本から。認証認可について

匿名プロファイルの有効化: デフォルトでは、プロファイル データは認証されたユーザーのみが利用できます。現在のユーザーがログインしていないときにプロファイル プロパティを書き込もうとすると、例外がスローされます。リストに示すように、匿名プロファイルのサポートを有効にすることで、これを変更できます。 22-17。匿名識別が有効になっている場合、ASP.NET フレームワークは、10,000 分 (約 70 日) 後に有効期限が切れる .ASPXANONYMOUS と呼ばれる Cookie を匿名ユーザーに与えることで、匿名ユーザーを追跡します。allowAnonymous 属性を true に設定することで、プロファイル プロパティの匿名サポートを有効にできます。このリストでは、Name プロパティと City プロパティの匿名サポートを有効にしています。匿名プロファイルを有効にすると、認証されていないユーザーのプロファイル データを読み書きできるようになりますが、注意してください。

これをsimplemembershipで複製したいと思います。ブロブに値を格納するため、古いプロファイル システムを使用したくありません。brgds!.

* *更新: リスト 22-17: リスト 22-17。匿名プロファイルのサポートを有効にする

<configuration>
<system.web>
<anonymousIdentification enabled="true"/>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
<properties>
<add name="Name" type="String" allowAnonymous="true"/>
<group name="Address">
<add name="Street" type="String"/>
<add name="City" type="String" allowAnonymous="true"/>
<add name="ZipCode" type="String"/>
<add name="State" type="String"/>
</group>
</properties>
</profile>
</system.web>
</configuration>

匿名識別が有効になっている場合、ASP.NET フレームワークは、10,000 分 (約 70 日) 後に有効期限が切れる .ASPXANONYMOUS と呼ばれる Cookie を匿名ユーザーに与えることで、匿名ユーザーを追跡します。allowAnonymous 属性を true に設定することで、プロファイル プロパティの匿名サポートを有効にできます。このリストでは、Name プロパティと City プロパティの匿名サポートを有効にしています。**

4

1 に答える 1

3

あなたが説明しているシナリオは、ユーザーがアプリケーションに登録するシナリオだと思いますが、確認されていない、プロファイルが完成していない、またはその他の基準がない可能性があります。これらの要件を完了するまで、アプリケーションへのアクセスが制限された匿名ユーザーと見なされます。ユーザー名やパスワードなど、ユーザーを識別するための最小限の情報がユーザーに入力されていると想定しています。

おそらくこれを処理する最も簡単な方法は、すべての新しいユーザーが自動的に割り当てられる「匿名」の役割を持つことです。これで、基本的なフォーム認証方法を使用して、 AuthorizeAttributeを使用してコントローラー/アクションへのアクセスを制限できます。ユーザーが匿名ではないという基準を満たしたら、ロールを切り替えるか、完全なアクセス権を付与する新しいロールを追加することができます。

ユーザーが本当に匿名であり、それらを識別する方法がない場合でも、アクセスを許可する領域のAllowAnonymousAttributeでコントローラー/アクションを装飾することにより、ロール ベースの承認とフォーム ベース認証を使用してアクセスを制限します。

更新された質問に基づいて更新された回答

この ASP.NET Forumの回答をご覧ください。基本的には、独自の Cookie と独自のデータベース スキーマを管理することで目的を達成できますが、SimpleMembership プロバイダーの一部としては機能しないということです。

于 2013-01-22T13:50:42.197 に答える