2011-07-16 16 views
1

WebMatrixに完全ログイン/登録とAdminロールを使用して作ったRazorサイトがあります。また、管理者は、ログインしている特定のユーザーの新規注文を追加、編集、キャンセル、または確認できるようにするために、「既存のユーザーとしてログインする」ことができます。FormsAuthenticationの使用

私はこれがこれに近づく最も一般的な方法ではないことを知っていますが、私はそれが大変なことを見ました。私は現在、ドメイン転売事業を所有しており、サプライヤーはこのタイプの機能を使用して、自分のアカウントETCを信用するユーザーとしてログインすることができます。

したがって、FormsAuthenticationはC# 。だから私は、チェックアウト:

何:

http://msdn.microsoft.com/en-us/library/twk5762b.aspx

私が尋ねるにつながりますか? 「ユーザ名」と

そして...

、彼らはそのユーザが登録したときに作成者のメールアドレスを意味ですか?あるいは、それはINTであるUserIdを意味しますか?

そして、それは、これを行うのと同じくらい簡単本当にある?:

@{ 
    if(Roles.IsUserInRole("Administrator")) 
    { 
    SetAuthCookie(
     "ClientsUserNameHere, 
     true 
    ); 
    } 
    else 
    { 
    Response.Redirect("~/Account/SignIn"); 
    } 
} 
<DOCTYPE! HTML> 
<html> 
    <head></head> 
    <body> 
    <p>Hello, Administrator, you are currently Signed In as [insert client name here].</p> 
    </body> 
</html> 

答えて

3

そして、それは実際にこれを行うのと同じくらい簡単ですか!

はい、本当に簡単です。まあ、実際にページがまだ管理者を示しリクエストクッキーを使用しますので、あなたがリダイレクトする必要が有効になるように、このために:

if(Roles.IsUserInRole("Administrator")) { 
    FormsAuthentication.SetAuthCookie(
     "ClientsUserNameHere", 
     false // <-- set to true only if you want persistent cookies 
    ); 
    Response.Redirect("~/Home/SomeUserPage"); 
} 

加えて、あなたはセッションにいくつかの情報を格納することができ、これは管理者の演技であることを示します通常のユーザーではなく(それを知る必要がある場合)、通常のユーザーではなく

さらに高度ななりすましのシナリオについては、following articleをご覧ください。

+0

Woot!大いにありがとう@ダーリン - とても役に立つ記事 – bendr

関連する問題