問題タブ [asp.net-identity-2]

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.

0 投票する
1 に答える
1061 参照

asp.net-mvc-5 - ID 2.0 の IPasswordHasher はパスワードを回復しますか?

Identity 2.0 の IPasswordHasher でハッシュ化されたパスワードを解読することはできますか? HashPasswordとの 2 つのメソッドしか表示されませんPasswordVerificationResult。パスワードを解読したい場合はどうすればよいですか? 回避策はありますか?

0 投票する
1 に答える
1102 参照

android - asp.net ID と Android 認証によるハイブリッド認証

Identity(v2.0)を使用するaspでWebサイトを作成しており、Web APIを介してWebサイトに接続されたAndroidアプリも作成しています。

Google OAuth サインインを使用するように Identity を構成しましたが、非常にうまく機能します。現在、アプリ用の Web API を作成しようとしていますが、モバイル ユーザーも認証する必要があります。

API のベアラー トークンを管理するように Identity を構成するところまで来ました。しかし、サインインを実行するには、ドキュメントにあるように、私が見つけた唯一の方法はユーザーとパスワードを使用することです。

または Web で OAuth チャレンジを実行します。

Androidは Google OAuth も管理しているため。Google Oauth を使用してサインインを実行するように Identity を構成する方法はありますか?

外部ベアラー トークンを管理する方法も、Google 認証トークンを使用して Web Api with Identity で署名する方法も見つかりませんでした。

多分私は何かを誤解しています。

前もって感謝します。

0 投票する
3 に答える
32713 参照

c# - カスタム テーブルを使用した Identity 2.0

私は ASP.NET ID を初めて使用し、それがどのように機能するかについてまだ頭を悩ませています。残念ながら、私が試したチュートリアルの多くは Identity 1.0 用であることがわかりましたが、私は Identity 2.0 で作業しようとしています。

私が直面している最大の問題は、単純だと思っていたのに、そうではないことが判明したことです。私がやろうとしているのは、既存のユーザーテーブルで既存のデータベースを使用することです。現在、私ができることは、ユーザーデータを格納するための独自のテーブルを作成するように Identity を取得することだけです。Entity Framework を使用したくありませんが、Identity 2.0 から Entity Framework を分離するのは非常に困難でした。

私の状況では SQL Server を使用していますが、次のリンクで MySQL のカスタム プロバイダーを実装しようと思いました: http://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql -aspnet-identity-storage-providerおよびhttps://github.com/raquelsa/AspNet.Identity.MySQL。これは、Identity 1 でのみ機能するようです。ただし、Entity Framework を使用する新しいものがあるようです。https://github.com/ILMServices/RavenDB.AspNet.Identityも試しました。

私が試したすべてのことで、次の行に行き詰まります。

私が直面している問題は、RavenDB の指示に従って ApplicaitonDbContext クラスを削除する必要があることですが、代わりにこの行に何を入力すればよいかわかりません。

私が得るエラーは次のとおりです。

非ジェネリック型 'AspNet.Identity.MySQL.UserStore' は型引数では使用できません

タイプまたは名前空間名 'ApplicationDbContext' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

2 番目のエラーが予想されますが、代わりにこのコード行で何を使用すればよいかわかりません。Entity Framework を使用せずにカスタム プロバイダーを実装した経験のある人はいますか?

ありがとう。

更新 1:

次のチュートリアル [ http://aspnetguru.com/customize-authentication-to-your-own-set-of-tables-in-asp-net-mvc-5/ ] を試しましたが、不完全なようです。チュートリアルを正確に実行すると、コンパイル エラーまたは実行時エラーが発生します。私がまだ抱えているいくつかの問題は...

「ApplicationUser」のすべてのインスタンスを「User」に置き換えると、IdentityConfig.cs の次の行に問題が発生します。

ApplicationUser を User に変更すると、次のエラーが発生します

型 'WebApplicationTest2.Models.User' は、ジェネリック型またはメソッド 'Microsoft.AspNet.Identity.EntityFramework.UserStore' の型パラメーター 'TUser' として使用できません。「WebApplicationTest2.Models.User」から「Microsoft.AspNet.Identity.EntityFramework.IdentityUser」への暗黙的な参照変換はありません。

また、ユーザー マネージャーと多くの ASync メソッドの使用方法を理解するのにも苦労しています。次の行は機能しません。

AccountController.cs で次のエラーが発生します。

'Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties, params System.Security.Claims.ClaimsIdentity[])' に最も一致するオーバーロードされたメソッドには、いくつかの無効な引数があります。

'WebApplicationTest2.Models.User' には 'GenerateUserIdentityAsync' の定義が含まれておらず、タイプ 'WebApplicationTest2.Models.User' の最初の引数を受け入れる拡張メソッド 'GenerateUserIdentityAsync' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? ?)

0 投票する
0 に答える
407 参照

asp.net-identity-2 - Thinktecture IdentityManager を既存のサイトに統合する

Identity を使用する既存の MVC サイトがあり、Thinktecture IdentityManager を使用したいと考えています。問題は、OWIN ベースの独自のホストが付属しており、私のサイトでは IIS を使用していることです。Thinktecture IdentityManager を既存のサイトに統合する最良の方法は何ですか?

ありがとう、ジャスティン。

0 投票する
2 に答える
14324 参照

asp.net-mvc - パスワードを暗号化するために Asp.net Identity が使用するアルゴリズムは何ですか?

Asp.Net Identityフレームワークはパスワードを暗号化するためにどのようなアルゴリズムを使用しますか? Android、iPhone、Web、およびデスクトップが同じデータベースを使用するシナリオがあります。このパスワードは暗号化する必要があるため、ASP.NET MVCID フレームワークを使用してパスワードを暗号化しました。ここで、すべてのプラットフォームで機能するアルゴリズムが必要です。

どんな助けでも大歓迎です。

前もって感謝します。

0 投票する
1 に答える
3537 参照

entity-framework - AspNetUserRoles 列の名前が変更されたため、ASP.NET Identity Model First が失敗します

他のいくつかと同様に、私は ASP.NET Identity Model First を実装しようとしました。試して、エラーを出して、発煙して、検索して解決したら、すべてうまくいきます..と思いました。

以下も参照してください。

行動方針、要約:

  • 既定のプロジェクト (MVC5) を作成しました
  • データベースの作成
  • web.config で接続文字列を更新する
  • Web サイトの実行、登録: テーブルが作成されます
  • EF モデルの作成 (edmx)
  • ID テーブルをインポートします (ここまでは問題ありません)。
  • IdentityDbContext から継承するように xxx.Context.tt を変更しました
  • データベース スクリプトを生成します (問題はここから始まります)

表示された問題を解決しました(最新のステップまで)。完全を期すために、それらについて説明します。

デフォルトの Identity コンテキストの使用

すべて正常に動作します。テーブルが作成され、登録してログインできます。ただし、これは私が望む状況ではありません。Model First アプローチを使用したいのです。

EF 接続文字列を使用して、カスタムのモデルの最初のコンテキストを使用する

Model First コンテキストを使用するように CreatePerOwinContext を変更します。

そして、Model First コンテキストを使用するように ApplicationUserManager :

結果:

「/」アプリケーションでサーバー エラーが発生しました。

エンティティ タイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.InvalidOperationException: エンティティ タイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。

ソース エラー:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

スタック トレース: [InvalidOperationException: エンティティ タイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。]

カスタムの Model First コンテキストで「通常の」接続文字列を使用する

タイプ 'System.Data.Entity.Infrastructure.UnintentionalCodeFirstException' の例外が WebApplication1.dll で発生しましたが、ユーザー コードで処理されませんでした

追加情報: Database First および Model First 開発用の T4 テンプレートを使用して生成されたコードを Code First モードで使用すると、正しく動作しない場合があります。Database First または Model First を引き続き使用するには、実行中のアプリケーションの構成ファイルで Entity Framework 接続文字列が指定されていることを確認してください。Database First または Model First から生成されたこれらのクラスを Code First で使用するには、属性または DbModelBuilder API を使用して追加の構成を追加してから、この例外をスローするコードを削除します。

したがって、Identity を使用するにはデフォルトの Identity コンテキストが必要であり、他のすべてにはカスタムの Model First コンテキストを使用する必要があると考えました。好ましい解決策ではありませんが、許容範囲です。

  • すべてを元に戻しました
  • データベースから ID テーブルをインポートする
  • (オプション) Model First アプローチを介して作成されたエンティティ
  • 生成されたデータベース スクリプト

通常のプロジェクトとクイック サニティ チェック テスト プロジェクトの両方で、AspNetUserRoles テーブルに同じ問題があります。それがジャンクション テーブルで、EF デザイナーにインポートすると、すべて問題ありません。これは多対多の関係であるため表示されません。AspNetRole と AspNetUser の間の関連付けを調べると、適切に見えます。

デザイナーとマッピングの詳細:

モデル 最初のマッピング OK

ただし、SQL スクリプトを生成するときに、EF はキーを変更します。

デザイナーとマッピングの詳細:

ここに画像の説明を入力

生成された SQL スクリプト:

EF では、デザイナーでマッピングの名前を変更することはできません ( social.msdn.microsoft.com のスレッド)。

その後、ジャンクション テーブルに間違った列が含まれているため、最初に作成されたコンテキストを使用して、新しいユーザーの作成が失敗します。

「/」アプリケーションでサーバー エラーが発生しました。

列名 'UserId' が無効です。

列名 'UserId' が無効です。

列名 'UserId' が無効です。

列名 'RoleId' が無効です。

列名 'UserId' が無効です。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.Data.SqlClient.SqlException: 列名 'UserId' が無効です。列名 'UserId' が無効です。列名 'UserId' が無効です。列名 'RoleId' が無効です。列名 'UserId' が無効です。

ソース エラー:

89 行目: {

行 90: var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };

91 行目: IdentityResult result = await UserManager.CreateAsync(user, model.Password);

92行目: if (result.Succeeded)

93行目: {

解決策は何ですか?生成されたスクリプトを変更しようとするか、Code First に移行する以外の方法はありますか?