問題タブ [membership]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - Windows 認証またはフォーム認証を介して Active Directory または SQL に対して認証するための ASP.NET アプリケーション
複数の形式の認証を必要とするアプリケーションを作成中です。
アプリケーションは Active Directory への認証をサポートする必要がありますが、ユーザーが Active Directory にいない場合は SQL メンバーシップ プロバイダーにフェールバックできる必要があります。ユーザー名は Active Directory ユーザー名とは異なる形式になるため、提供されたユーザー名に基づいてコードで SQL プロバイダーへの失敗を処理できます。
これは可能ですか?つまり、メンバーシップを使用して、ActiveDirectoryMembershipProvider と SqlMembershipProvider の両方を一緒に使用できますか、それとも自分で作成する必要がありますか?
もう 1 つの追加の複雑さは、Windows 認証に基づいて内部ユーザーを AD に自動的に認証したいが、内部ネットワークにないユーザー、または SQL プロバイダーを使用しているユーザーにはフォーム認証を使用したいということです。
これらはおそらく別のサーバーであり、1 つは内部、もう 1 つは外部であるため、データの複製を把握するために多くの計画を立て、AD ユーザーが外部サーバーにアクセスした場合にどのように認証するかなどを検討しています。
この道を歩き始めるとき、そこにはどんな考えがあるのだろうと思っています。私がやりたいことは、私が自分自身を転がさなくても可能ですか、またはこれらを噛み合わせる方法はありますか?
返信いただきありがとうございます。
私が最初に尋ねた理由は、約 7 年前に IIS を使用して認証し、資格情報を Lotus Domino Server Web App に戻すことで、この特定のセネリオを機能させることができたからです。ユーザーが Windows 認証/ISS を介して認証されなかった場合、Domino が認証を処理します。これは私がここでやろうとしていたことでしたが、実際には IIS で機能させる方法が思いつきませんでした。
あなたの返信の残りの部分については、あなたは私が取るべき道を進んでいると思います。私はこれを熟考し、頭の中で何度も投げました。とにかく、外部サーバー上のデータへのアクセスが制限されるため、アプリケーションは 2 つのサーバー上で多少異なります。すでに多くのことが異なるという事実は、これらを 2 つのアプリケーションとして扱うことで、同じアプリケーションで 2 種類の認証を使用する必要性をなくすことができます。
外部サーバー用に独自の認証/ログインウィンドウを作成するというアイデアを既に試しています。ユーザーが外部サーバーで AD 資格情報を使用してログインしようとすると、それを検出して内部にリダイレクトできます。サーバ。ローカル ネットワークまたは VPN に接続されていない場合は、単にアクセスできません。この部分にはまだいくつかの思考プロセスが必要なので、よくわかりません。
追加の考えとして、セキュリティ上の問題を発生させずに、AD 資格情報を使用して外部サーバーから SQL データベースに対してユーザーを認証できるようにするために、SQL データベースに十分な量の AD をプルする方法はありますか? 私が考えていることを明確に入力していることを願っています....
再度、感謝します!
ティム
.net - ASP .Net カスタム メンバーシップ プロバイダーでのユーザーのロックアウト
データベース スキーマに適合させるために、現在の ASP .Net プロジェクト用にカスタム メンバーシップ プロバイダーを作成する必要がありました。標準プロバイダー。
これは自分で実装する必要があるものですか、それとも本質的にサポートする必要がありますか?
特にそれを処理するコードはありません (そして、インターフェイス メンバーのどれも特にそれを処理していないようです) が、自分で実装する必要がある場合、ロックアウトされていることをユーザーに通知するにはどうすればよいですか? ValidateUser で何らかの例外を発生させる必要がありますか?
解決
Dave R によって提供されたリンクは、メンバーシップがどのように機能するかについて深く掘り下げたものであり、Zhaph が指摘したことは、カスタム メンバーシップ プロバイダーでロックアウトされたロジックを処理することでした。
次に、Login コントロールの LoginError イベントを使用してエラー状態を処理し、そこにチェックインして、適切なエラー メッセージを表示するためにユーザーがロックアウトされているかどうかを確認しました。
php - ExpressionEngine 複数のサイト マネージャーとメンバー グループ
EE が MSM に関連してメンバー グループをどのように処理するかについての詳細情報へのリンクを探しています。
私の場合、2 つの会員サイトを持っています。一般的に言えば、2 つのサイトは全体的に同じグループの人々にサービスを提供しているので、MSM がメンバー データベースを共有しているという事実は、私にとって有利に働いています。私が不明なのは、さまざまなアクセスレベルの組み合わせを管理する方法です。つまり、次のとおりです。
- サイト A のメンバーであり、B のメンバーではない
- サイト B のメンバーであり、A のメンバーではない
- サイト A およびサイト B のメンバー
他のフォーラムの投稿で読んだように、メンバーを複数のグループに所属させることはできないため、上記の構成で 3 つのメンバー グループを作成し、それに応じてユーザーを割り当てる必要があるようです。少なくともテンプレートでは、グループ 1|3 へのメンバーシップを確認できます。
1 つのサイト内でメンバーシップをさまざまなレベルのアクセスにさらに分割することを計画しています。
例えば、
- サイト A へのフル アクセス
- サイト A の 1 か月分のコンテンツへのアクセス
- 1 か月分のコンテンツ + Web ツールへのアクセス
サイト B のアクセス レベルへのアクセスに加えて、上記の各組み合わせを管理するグループを作成する必要がある場合、これはすぐに使用できなくなります。
EE の外部でアクセス レベルを管理するには、カスタム PHP コードをテンプレートで直接使用する必要があるように思われ始めています。
誰もこの種の経験がありますか?
MSM をまったく使用せず、各サイトを個別のインストールとして管理し、個別のメンバー グループを使用するのが最善でしょうか? (それは私にとって最初に EE を使用する理由のいくつかを無効にするでしょう。つまり、サイト間でウェブログ コンテンツを共有するということです)
外部リソースまたはドキュメントへのリンクが役立ちます。(はい、最初にドキュメントを確認しましたが、何か見落としている可能性があります.. wink )
ありがとう!
asp.net - ASP.Net アプリでプリンシパルを設定する方法
クライアント用の Web アプリを作成しています。ユーザーは、アプリに対して最初に自分自身を識別するために使用するワンタイム キーを持ちます。アプリがキーが有効であることを確認すると、その後のすべてのログインに使用する通常のアカウントを作成できるページが表示されます。アカウントの作成ページは、キーを入力した後にのみアクセスできるようにする必要があり、それ以外の場合はアクセスできないようにする必要があります。つまり、通常のアカウントでログインしているユーザーがアクセスできないようにする必要があります。これは、カスタム メンバーシップ プロバイダーを使用する asp.net 3.0 です。
私の計画は、キーに基づいて一時的なアカウントを作成し、そのアカウントでユーザーを認証することです。これにより、正式なアカウントを作成できる create-user ページ ( location タグで保護されている) にアクセスできるようになります。次に、新しいアカウントで認証し、一時的なアカウントを削除します。フローは次のとおりです。ユーザーは、キーを入力するページに移動します。キーが有効であれば、一時アカウントを作成し、FormsAuthentication.SetAuthCookie を呼び出して、アカウント作成ページにリダイレクトします。少し複雑に見えますが、これはすべて機能します。
問題は、認証されたすべてのユーザーがユーザー作成ページを使用できることです。キーを入力してから正式なアカウントを作成するまでの間だけ利用できるようにしてほしい。そこで、一時アカウント用に特別な役割を作成し、その役割のみがユーザー作成ページにアクセスできるようにしようと考えました。特別なロールを持つ独自のプリンシパル オブジェクトを作成し、一時アカウントを認証するときにそれを設定しようとしましたが、それを機能させることができません。
これを行うためだけにカスタム ロール プロバイダーを作成する必要がないことを本当に望んでいます。
どうすればこれを機能させることができますか?もっと簡単な方法があるはずです!
asp.net - ASP.NET: カスタム MembershipProvider クラスを実装するには、カスタム Membership クラスも実装する必要がありますか?
「カスタム MembershipProvider クラスを実装するには、カスタム Membership クラスも実装する必要がありますか?」という質問があります。ASP.NET でのカスタム メンバーシップ フレームワークの実装について、少し混乱しています。
お見せできるサンプル クラスはありませんが、以前の Web サイトで ASP.NET が使用しているものとは異なるデータベースまたはスキーマを使用していた場合はどうでしょうか。
どうもありがとう!
asp.net - ASP.NET メンバーシップ セキュリティ モデルを使用する必要があるのはなぜですか?
現在、Web サイトを更新していますが、ログイン/セキュリティ モードを更新するのであれば、今が良い時期だと考えています。
私は ASP.NET に含まれているメンバーシップ モデルに目を通しましたが、他の .NET 開発者が慣れ親しんでいること以外に利点があるとは確信していません。
それについてはかなり多くのドキュメントがあるようですが、なぜ努力する価値があるのかについての議論はほとんどありません.
誰かがこれに光を当てることができますか?
asp.net - asp.net の一部のページにログインを要求する最良の方法は何ですか?
一部のページで認証が必要なasp.net Webサイトプロジェクトを使用しています。私はasp.netメンバーシップを使用しています。
私はいくつかの答えを読みました。たとえば、これらのページをすべてフォルダーに作成し、特権を説明する内部 web.config を作成します。これは問題を解決する 1 つの方法ですが、より修正可能で効果的な方法が必要です。
asp.net - ASP メンバーシップは、web.config で暗号化された接続文字列を処理できません
私たちが持っているテスト Web サーバーで、Web メソッドの 1 つでエラーが発生していました。主なエラーは次のとおりです。
スタック トレースをさらに下に見ると、もう少し情報が得られます。
メンバーシップ プロバイダーがメンバーシップ呼び出しの接続文字列を見つけようとしていたようです。このエントリが見つからない場合、新しいローカル メンバーシップ データベースを作成しようとしましたが、アクセス許可エラーでこれを行うことができませんでした。
接続文字列を再確認したところ、暗号化されていても問題ないようでした。次に、接続文字列セクションを復号化して構成を保存しました。呼び出しが機能するようになりました。
他のサービス メソッドが正常に機能していたため、接続文字列が正しいことはわかっています。さらに奇妙なのは、メンバーシップの一部の側面が暗号化されているように見えることです。
暗号化された接続文字列でこれを機能させる方法を知っている人はいますか?
asp.net - 「userid」タイプを整数に変更して、asp.net メンバーシップをカスタマイズします
asp.net メンバーシップでは、「userid」タイプを「uniqueidentifier」から「integer」に変更できますか? そしてそれを行う方法は?