問題タブ [custom-authentication]
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-mvc - セッションの HttpContext.User を設定します
ASP.NET MVC でカスタム認証を実装しました。有効なユーザーがログインしようとするHttpContext.User = user
と、AccountController の Logon メソッドに を設定します。しかし、それはその要求のためだけに残ります。セッションに設定するにはどうすればよいですか?
代わりに set を使用しましたHttpContext.Session["CurrentUser"] = user
。セッションが承認されているかどうかを確認したい場合は、HttpContext.User != null
. しかし、アプリケーションのどこにでも認証ロジックを公開したくありません。それを変更する必要がある場合、それは面倒です。
これを解決するのを手伝ってください。1 つの解決策は、最初HttpContext.User
にすべてのリクエストのプロパティに の値を入力することですがHttpContext.Session["CurrentUser"]
、その方法がわかりません。
django - Django でカスタム認証バックエンドを設定するための包括的なガイド、またはポインターを探しています
システムでモデルを作成した別のデータベースにクエリを実行するカスタム バックエンドをセットアップしようとしています。独自のルール (ユーザー名の代わりに電子メール、別の方法でソルト化/ハッシュ化されたパスワード) を使用するため、組み込みの認証を使用できません。次のようにカスタム認証バックエンドを設定しました。
BlahBlahBackend を認証バックエンドとして追加しました。
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend', 'socialauth.auth_backends.OpenIdBackend', 'socialauth.auth_backends.TwitterBackend', 'socialauth.auth_backends.FacebookBackend', 'socialauth.auth_backends.BlahBlahBackend', )
ご覧のとおり、socialauth にもある既存の認証バックエンドもいくつか使用しています。
次のビューを指す送信フォームがあります。
ただし、この方法でログインしようとすると、他のバックエンドの 1 つ以上が、その方法を使用してログインしようとしているかのように動作しているように見えます。
バックエンドがキャッシュされていることを読んだので、実行しました
バックエンドのキャッシュをクリアします。
私の主な質問は次のとおりです。
- AUTHENTICATION_BACKENDS にリストされているアイテムの順序
- システムはどのバックエンドを使用するかをどのように決定/認識しますか? これはどのドキュメントでも明確にされておらず、少し混乱しています。
- リクエストに基づいて特定の承認の使用を強制する方法はありますか? つまり、誰かがフォームを送信した場合、openid または Twitter 経由のログインではなく、フォーム ログイン ベースの認証を強制的に使用する方法はありますか?
アップデート:
できます!これはとてもクールです、ありがとう。django のドキュメントが「他に何もする必要はありません。魔法のように機能するだけです」と言っていたように思えたのですが、これは絶対に当てはまることがわかりました。バックエンドが存在し、資格情報が正しく設定されている限り、認証は機能します。実際の問題は、urls.py ファイルの構成ミスで、ログイン フォームから正しいハンドラーに投稿が送信されなかったことが判明したため、別の認証方法を使用しようとし続けました。
asp.net-mvc - カスタム基本認証が IIS7 で失敗する
カスタムの基本認証を使用して保護しようとしているいくつかの RESTful サービスを含む ASP.NET MVC アプリケーションがあります (それらは自分のデータベースに対して認証されます)。HTTPModule を作成してこれを実装しました。
HttpApplication.AuthenticateRequest イベントにアタッチされたメソッドが 1 つあります。このメソッドは、認証が失敗した場合にこのメソッドを呼び出します。
このメソッドは HttpApplication.EndRequest イベントに添付されています。
このコードは、ブラウザーにログイン ダイアログを表示するように指示する "WWW-Authenticate" ヘッダーを追加します。Visual Studio の Web サーバーを使用してローカルでデバッグすると、これは完全に機能します。しかし、IIS7 で実行すると失敗します。
IIS7 では、組み込みの認証モジュールをすべてオフにしていますが、匿名は除きます。それでも HTTP 401 応答が返されますが、WWW-Authenticate ヘッダーが削除されているようです。
何か案は?
java - Spring - コントローラーから custom-authentication-provider を呼び出す
Spring Security 構成で定義されたカスタム認証プロバイダーがあります。このクラスは AuthenticationProvider を実装しており、ページで定義されたフォームを使用して正常にログインできます。問題は、ログイン ページだけでなく、登録ページからもこのクラスを呼び出したいことです。
登録ページは異なるコマンド クラスを使用し、ログイン フォームよりも多くの情報を収集します。現在、ユーザーが登録すると、適切なコントローラーを呼び出し、レコードをデータベースに追加すると、ユーザーはログインできますが、自動的にはログインしません。彼らは登録ページでユーザー名/パスワードを教えてくれたので、これをカスタム AuthenticationProvider クラスに渡して、彼らもログインできるようにすることはできますか?
登録コントローラーで org.springframework.security.Authentication クラスを作成し、顧客の AuthenticationProvider クラスで認証メソッドを呼び出してみましたが、エラーにはなりませんが、ユーザーはログインしていません。これを達成するために、Spring Security フィルター チェーンの上位にあるメソッドを呼び出しますか? コントローラーを j_spring_security_check URL にリダイレクトする必要がありますか? もしそうなら、どうすればユーザー名/パスワードを渡すことができますか?
c# - HelloWorld WCF サービスのカスタム X.509 認証が機能しないのはなぜですか?
編集:クライアントでサービスのテストを実行すると、応答が返されます。返事が来ないはずです。証明書が送信されていないため、CertificateValidator.Validate() は例外をスローする必要があります。テストを行わずに例外をスローしても、まだスローされないため、呼び出されていないことはわかっています。だから、私は構成が間違っていると確信しています
編集: この投稿では、XML ファイルの一部のコードが欠落していると思います。入手方法がわかりません。重要なのは、そこにある認証の構成です。
ここにはたくさんのコードがありますが、ここに行きます。最初に説明します。動作するクライアントがあります。私のサービスは機能します。ここで、カスタム認証を機能させたいと考えています。テストすると、証明書が送信されていないためエラーが発生するか、応答がないはずですが、どちらが間違っているかはわかりません。
編集:申し訳ありませんが、追加するには、必要なすべてのファイルなどへの参照があります.
これがサービスの構成です。カスタム クラスへの参照のビットは下部にあり、MSDN サイトにあるものとほぼ同じに見えます。
次は私のサービスクラスです:
と:
最後に、CertificateValidation クラスです。
silverlight - Entity-Framework と Silverlight WCF RIA-Services を使用してカスタム承認サービスを開発していますか?
RIA サービスで開発しようと必死ですが、User クラスと Role クラスを EDM デザイナーによって生成されるエンティティにしたいと考えています。問題は、エンティティが既に から継承されているため、 から
継承できないことです。
ネット上のいくつかの議論で読んだことに従おうとしましたが、継承元と実装を持つインターフェースでUser の部分クラスを実装しました。UserBase
EntityObject
IUser
AuthenticationService
LinqToEntitiesDomainService<MyEntities>
IAuthentication<User>
しかし、どこでもエラーが発生し続けて結果が得られないため、行き止まりだと感じているので、それを経験し、彼らが戦ってきた知識を喜んで共有してくれる人に質問を投稿して、私の人生はより簡単です。
お願いします。経験のあるアイデアのみを共有してください。解決策を見つけるのに多くの時間を費やしました。
更新:
コンパイルして実行することができましたが、今は非常に奇妙な状況にあります: アプリケーションが実行されてから数秒後、アプリケーションは消え (Out-Of-Browser を使用します)、ウィンドウ フレームは残りますが、コンテンツはありません!
これをコンパイルするために私が行ったことは次のとおりです。
- エンティティ モデル エンティティを生成する
- クラスを
User
実装するIUser
Name
ユーザー名を返す実装済みプロパティをKey
およびDataMember
属性でマークします。- プロパティ
DataMember
の属性Roles
- 次に、プロジェクトを実行すると、コンパイルされますが、内部例外の原因を知らずに、数秒後にコンテンツが消えます!
以下が出力ウィンドウに出力された後に消失が発生したことがわかります。
その後、それが消えると、次のように書かれます。
私が経験したリソース:
asp.net-mvc - すべてのリクエストでロールベースのカスタム認証クエリデータベースを使用する正しい方法 asp.net mvc
これは少し無知な質問かもしれませんが、私は mvc を初めて使用するので、申し訳ありません!
私はオタクディナー認証モデルを研究しましたが、私のアプリでは複雑な役割ベースの認証を行っています。だから私がすることはこれです:
ログオン時に FormsAuth でユーザー名/パスを認証してから、Cookie を作成します。
ここでの問題は、カスタム ID を作成するたびに、ユーザーの役割についてデータベースにクエリを実行する必要があることです。これを回避する正しい方法はありますか、それともすべての着信要求で DB を照会するために正しいことをしていますか? 役割リストを Cookie などに保存する必要がありますか?
また、フォーム認証が認証を処理する方法のライフサイクル全体をよく理解していませんか? IFormsAuthentication
私はオタクディナーユーザーと同じデザインパターンを使用し、サインイン中に呼び出しFormsAuth.SignIn()
ます, メソッドFormsAuthentication.SetAuthCookie
を呼び出すのはいつmembershipservice.validateuser()
ですか?? また、認証 Cookie が設定されている場合、なぜ nerd dinner はチケットを作成し、それをリクエストに追加し、それを読み取ってPostAuthenticationRequest
どのユーザーであったかを確認します。チケット操作はセッションのようなものですか?
ありがとう!メリークリスマス!
更新:このリンクにより、フォーム認証チケットについて少し理解が深まりました。
asp.net-mvc - ASP.NETMVCでのグループベースの承認
私には管理者、ユーザーなどのサイトの役割がありますが、それは問題ありません。
しかし、私が合法的な申請書(または同様のもの)を持っているとしましょう。というエンティティがありますCase
。今、私は多くのケースを持つことができ、すべてのユーザーが特定のケースにアクセスできるわけではありません。フレッドとトムはCase1にアクセスできるはずですが、ジーナとレベッカだけがCase2にアクセスできるはずだとしましょう。
とても簡単ですよね?ケースがあり、ユーザーはケースに属することができます。それが最初の部分です。2番目の部分は、FredがCase1の「管理者」になり、大きな変更を加えることができるように「Case Roles」を設定する方法ですが、TomはCase1の単なる「ユーザー」であり、マイナーなことしかできず、読み取り専用にすることができます。アクセスなど
おそらくカスタム属性などを実装する必要があることはわかっていますが、この特定の種類のものの例をWeb上で見つけることができません。しかし、これはほとんどのビジネスアプリケーションで非常に一般的であるに違いないと思います。(BasecampやHighriseなど)
更新別の例を挙げましょう:
Basecampのようなサービスアプリケーションとしてプロジェクト管理ソフトウェアを利用してください。ユーザーは「プロジェクト」を作成できます。次に、そのユーザーは他のユーザーを自分の「プロジェクト」に招待できます。ただし、作成ユーザーは、プロジェクトにユーザーごとに異なる権限を割り当てることができます。基本的な質問は、ASP.NETMVCでこの種のことをどのように行うかです。
.net - WCFWebサービスのカスタム認証メカニズムを実装する方法
最初のWCFサービスを作成しました。今、私は次のことをしたいと思います:
データベースのユーザーテーブルのクエリなど、カスタム認証メカニズムを追加します。
ログインしたユーザーに応じて、サービスの操作結果を作成します。
それ、どうやったら出来るの?
注:「site:stackoverflow.com」や「site:codeproject.com」などのサイトフィルターを使用しても、すでにグーグルを試しましたが、必要なものが見つかりませんでした。
wcf - IIS7、WCF Rest、カスタム認証モジュールによる偽装
そこで、iis7でホストされるWCFサービスのセットアップに取り組んでいます。このサービスはRESTサービスです。
これまでの認証要件は、ドメインアカウントのみがサービスに接続することでした。基本認証を使用し、偽装を使用して、ビジネスレイヤーを介してDBに電話をかけています。
これはすべてうまく機能しています。
今、私たちは非ドメインアカウントが私たちのサービスを使用することを許可する必要があります。IISの問題により、これ(http://custombasicauth.codeplex.com/)と、(渡されたユーザー名に応じて)ActiveDirectoryまたはasp.netメンバーシップに対して認証を試みるカスタムメンバーシッププロバイダーを実装しました。プロバイダー。この部分は正しく機能しています。
私が今抱えている問題は、なりすましが機能していないことです(これは理解できます)。今、これは私が迷子になり、すべての霧の方向付けまたは除去の助けが必要な場所です。私がやりたいこと(そしてこれが可能かどうかはわかりません)はこれです:
ユーザーがドメインユーザーである場合は、アカウントを偽装します。ドメインユーザーでない場合は、「一般ユーザードメインアカウント」になりすます。ボーナスとして、これを「舞台裏」で実行して、これを処理するために特別なロジックを追加する必要がないようにします。
ID、ポリシープロバイダー、ロールプロバイダーについてたくさん読んだことがありますが、今では完全に混乱しています。
誰かがこれについていくつかの洞察を持っていますか?