これは主に理論上の質問です。たとえば、フォーム認証のための独自の代替案を作成したい場合などです。ASP.NETでPage.Userプロパティを設定するにはどうすればよいですか?
1
A
答えて
1
- 基本的な&ダイジェスト認証をサポートするASP.NETの認証モジュールの作成方法を説明し、このexcellent articleを参照してください。
あなたはフォーム認証スキームしか考えていないので、実際にフォームスキームを書く必要はありません。ビルド中のForms Authenticateモジュールは非常に拡張性があり(柔軟性も高い)
0
グーグルで調べたところ、this blogpostが見つかりました。それはどのようにそれを行うには非常によく説明します。基本的にカスタムHTTPモジュールを作成し、HttpApplication
オブジェクトのOnAuthenticateRequest
イベントを処理する必要があります。
2
Page.User
だけモジュールまたはglobal.asax
介しHttpApplication.AuthenticateRequest
のハンドラに設定されるべきであるPage.Context.User
返します。 IPrincipal
のカスタム実装を提供すると、IIdentity
のカスタム実装を返すことができます。例えば
:
あなたが独自の認証モジュールを記述する必要がpublic class App : HttpApplication
{
public App()
{
AuthenticateRequest += App_AuthenticateRequest;
}
void App_AuthenticateRequest(object sender, EventArgs e)
{
var cookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie == null) return;
var userData = GetUserData(cookie.Value);
var userIdentity = new MyIdentity(userData);
Context.User = new MyPrincipal(userIdentity);
}
private string GetUserData(string value)
{
try
{
var ticket = FormsAuthentication.Decrypt(value);
return ticket == null ? null : ticket.UserData;
}
catch (ArgumentException)
{
Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
return null;
}
}
}
関連する問題
- 1. AutoMouseScrollおよびMouse howerプロパティのプロパティをUltraDropdownに設定するにはどうすればよいですか?
- 2. ASP.NET MVCビューでページタイトルを設定するにはどうすればよいですか? ASP.NET MVCのビューで
- 3. ASP.NET IDのパスワードルールを設定するにはどうすればよいですか?私のASP.NETアプリケーションで
- 4. struts.custom.i18n.resourcesプロパティを特定のフォルダに設定するにはどうすればよいですか?
- 5. iOS 5では、ストーリーボードUIViewControllerのセグのプロパティを設定するにはどうすればよいですか?
- 6. XAMLでDataContextをStaticプロパティに設定するにはどうすればよいですか?
- 7. WPFのUIElements(ボタン)で「isfocusable」プロパティをfalseに設定するにはどうすればよいですか?
- 8. Silverlight:DataContractSerializerでPreserveObjectReferencesプロパティを設定するにはどうすればよいですか?
- 9. View Controller階層でinterfaceOrientationプロパティを正しく設定するにはどうすればよいですか?
- 10. JavaScriptでmarginLeftプロパティを設定するにはどうすればよいですか?
- 11. Spring.NETで静的クラスのプロパティを設定するにはどうすればよいですか?
- 12. _ViewStart.cshtmlでViewBagプロパティを設定するにはどうすればよいですか?
- 13. Spring.netでxmlプロパティの値を設定するにはどうすればよいですか?
- 14. javacodeでMarginTopプロパティを設定するにはどうすればよいですか?
- 15. AS3でレンダーエリアを設定するにはどうすればよいですか?
- 16. MEFでPrivateBinPathを設定するにはどうすればよいですか?
- 17. モンゴイドでreferences_oneを設定するにはどうすればよいですか?
- 18. Libharuでトランスフォーメーションマトリックスを設定するにはどうすればよいですか?
- 19. UINavigationBarでカスタムフォントを設定するにはどうすればよいですか?
- 20. マスターページでビューステートを設定するにはどうすればよいですか?
- 21. Phalconでカスタムルートを設定するにはどうすればよいですか?
- 22. SimpleJdbcTemplateでsetQueryTimeoutを設定するにはどうすればよいですか?
- 23. UIViewControllerでparentViewControllerを設定するにはどうすればよいですか?
- 24. XNAでlidgrenを設定するにはどうすればよいですか?
- 25. Eclipseでインスタンスブレークポイントを設定するにはどうすればよいですか?
- 26. NSTextStorageでNSTextViewを設定するにはどうすればよいですか?
- 27. ArrayAdapterでonClickListenerを設定するにはどうすればよいですか?
- 28. HttpWebRequest.GetRequestStreamでタイムアウトを設定するにはどうすればよいですか?
- 29. ReSharperでデフォルトプレフィックスを設定するにはどうすればよいですか?
- 30. Androidでキープアライブタイムアウトを設定するにはどうすればよいですか?
私はフォーム認証が最も贅沢なニーズを満たすために簡単に拡張できると考えました。なぜカスタムモジュールを使いたいのですか? – Zruty