問題タブ [current-principal]
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.
c# - Thread.CurrentPrincipal.IdentityとHttpContext.User.Identity
重複の可能性:
http.context.userとthread.currentprincipalの違いと、それらをいつ使用するか?
ASP.NETアプリケーションでのこれら2つの違いは何ですか?
HttpContext.User.Identity
ユーザーがを介して認証されたときにが設定されることを知っていますFormsAuthentication
。しかし、Thread.CurrentPrincipal.Identity
セットはいつですか?
それらは常に同じ値を保持していますか?
これは、にアクセスできないアプリケーションの他のレイヤーにも当てはまりますHttpContext
か?
.net - .NETでは、System.Threading.Thread.CurrentPrincipalが更新されていません
いくつかの.NETコードをデバッグするときに、ここで基本的なものが欠けています。
このコードでは、すべてが陽気に進んでいるように見えます。ただし、デバッグして最後の行の直前にいるときは、System.Threading.Thread.CurrentPrincipalを見ています。値はWebSessionStoreオブジェクトであり、これは私が期待しているものであり、最後の行でServiceSessionStoreオブジェクトに変更する必要があると私は考えています。しかし、そうではありません。serviceSessionStoreを見ると、ServiceSessionStoreオブジェクトが保持されていますが、行が実行された後も、CurrentPrincipalにはWebSessionStoreオブジェクトが含まれています。エラーはスローされません。
さて、これらのオブジェクトが実際に行うこととは別に、誰かがCurrentPrincipalの更新を拒否しているように見える理由についてアイデアを提供できますか?
c# - Thread.CurrentPrincipal はデフォルトの GenericPrincipal にリセットされます
アプリケーションの初期化中に、System.Threading.Thread.CurrentPrincial
. しかし、アプリケーションが初期化された後、このプリンシパルにアクセスしたいのですが、CurrentPrincipal にはデフォルトの GenericPrincipal が再び含まれています。
なぜ私がこの振る舞いをするのか誰にも分かりますか? そして、アプリケーションの初期化後にそれにアクセスするためのプリンシパルをどのように設定する必要があるか。
次の例は、動作を示しています。
MainWindow.xaml:
MainWindow.xaml.cs:
私の実際のプロジェクトThread.CurrentPrincipal
では、Bootstrapper でプロパティを設定しました。
c# - CurrentPrincipal.Identity.Name が空白です
System.Threading.Thread.CurrentPrincipal.Identity.Name
ASP.NET アプリケーションを使用しているユーザーのログインを取得するために使用しようとしています。ビルド エラーは発生していませんが、空の値が返されます。IIS 6 を使用しており、認証設定は次のとおりです。
- 匿名認証: 無効
- ASP.NET 偽装: 無効
- 基本認証: 有効
- Windows 認証: 有効
Web.config
ファイルにも認証設定がありません。ログインを取得するために使用している方法は次のとおりです。
値を確認するためのブレークポイントがあり、それはlogin = ""
.
どうすればログインできますか?
編集
これが私の認証写真です:
c# - Thread.CurrentPrincipal.Identity.IsAuthenticated が常に false になるのはなぜですか?
この WCF サービスがあり、認証と承認のメカニズムを適用しようとしています。
これを行うのは初めてです。私が持っているのはserviceModel
、サービスのこの web.config タグです。
私がやりたいことは非常に単純です。私が試しているこのすべてのタグが必要かどうかはわかりません。私がやりたいことは、クライアント側からサービスへの参照を追加し、最初に を呼び出すことMyLogin
です:
次に、他の制限されたメソッドを呼び出して、次のようにしますGetData
。
メソッドのサービス側でLogin
、テスト目的でのみ、私はこれを行っています:
制限されたメソッドは次のようになります。
私がサービスとクライアントに持っているのはそれだけですが、何が欠けていますか? 毎回、デバッグで、等しいことがわかったメソッドをチェックThread.CurrentPrincipal
インしますが、クライアントがメソッドを呼び出すときでも. PS:コンソール アプリケーションを使用してテストを行っていますが、違いはありますか?
ありがとうLogin
Thread.CurrentPrincipal.Identity.IsAuthenticated
true
GetData()
Access Denied
c# - Where should Thread.CurrentPrincipal and HttpContext.Current.User get set when using a custom Principal
I created a custom class that inherits from IPrincipal
and would like to make sure this object is added to the Thread.CurrentPrincipal
and HttpContext.Current.User
instead of the ClaimsPrincipal
object. This is for a web api application.
I would like this to occur after the user makes a successful request for an access token. Where in the lifecycle should this occur?
After I called /Token to get the access_token, I passed the bearer token back to the ChangePassword action along with the necessary parameters and User is still set to ClaimsPrincipal. Is there a way to make sure the Principal is set immediately after the request is made and after the ClaimsPrincipal is set?