0

VisualStudioに付属している標準のアカウントコントローラーを使用してユーザーを認証するMVC3アプリケーションがあります。

プログラムの特定の部分を他の人と共有したいと思います。たとえば、Googleがメールでドキュメントを共有する場合は、Googleドキュメントでドキュメントを共有します。言い換えれば、誰にもページへのアクセスを許可したくないのですが(この場合、Authorize属性を削除するだけで済みます)、ユーザーにハッシュを含むURLに基​​づいてページを共有し、スキップしてもらいたいのです。ログインする。

ページに基づいてハッシュを生成し、それを匿名ユーザーにリンクしたいと思います。ハッシュが正しい場合は、自動ログインする必要があります。

どうすればいいですか?

4

1 に答える 1

1
  1. 共有ページ情報(コントローラー、アクション、documentId、ハッシュ、expiresAtなど)を使用してデータベースにテーブルを作成します
  2. Authorize属性をオーバーライドし、OnAuthorizationでデータベースのURLパラメータを検証します。
    パブリッククラスSharedAuthorize:AuthorizeAttribute  
    {{  
        public override void OnAuthorization(AuthorizationContext filterContext)
        {{  
            var documentHash = int.Parse(filterContext.RouteData.Values ["hash"]。ToString());
            if(!HashRepository.CanWeRead(documentHash、controller、action、documentId))
            {{
                falseを返します。
            }
            trueを返します。
        }
    }

これは単なるアイデアです=))

于 2012-04-29T21:10:57.067 に答える