問題タブ [simplemembership]
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 - ユーザーとロールをシードできません
ユーザーとロールをデータベースにシードしようとしています。現在、C# MVC4 の自動移行で Code First Entity Framework を使用しています。私が電話するたびに
更新データベース -強制
次のエラーが表示されます。
シード メソッドを実行します。System.InvalidOperationException: 「WebSecurity」クラスの他のメソッドを呼び出す前に、「WebSecurity.InitializeDatabaseConnection」メソッドを呼び出す必要があります。この呼び出しは、サイトのルートにある _AppStart.cshtml ファイルに配置する必要があります。WebMatrix.WebData.SimpleRoleProvider.get_PreviousProvider() で WebMatrix.WebData.SimpleRoleProvider.RoleExists(String roleName) で System.Web.Security.Roles.RoleExists(String roleName) で GratifyGaming.Domain.Migrations.Configuration.Seed(GratifyGamingContext コンテキスト) C:\Users\Unreal\Documents\Visual Studio 2010\Projects\GratifyGaming\GratifyGaming.Domain\Migrations\Configuration.cs: System.Data.Entity.Migrations.DbMigrationsConfiguration の 36 行目
1.OnSeed(DbContext context) at System.Data.Entity.Migrations.DbMigrator.SeedDatabase() at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.SeedDatabase() at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable
System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations、文字列 targetMigrationId、文字列 lastMigrationId) で System.Data.Entity.Migrations.DbMigrator.Update(文字列 targetMigration) で 1 pendingMigrations、文字列 targetMigrationId、文字列 lastMigrationId) ) System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration) で System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore() で System.Data.Entity.Migrations.Design.ToolingFacade で。 BaseRunner.Run() 「WebSecurity」クラスの他のメソッドを呼び出す前に、「WebSecurity.InitializeDatabaseConnection」メソッドを呼び出す必要があります。この呼び出しは、サイトのルートにある _AppStart.cshtml ファイルに配置する必要があります。
問題のあるコード行はRole.Exists
WebSecurity.InitializeDatabaseConnection を Global.asax、Seed() に配置しようとしましたが、成功せずに _AppStart.cshtml を作成しました。私は可能な解決策を探してインターネットをトロールしましたが、どれもうまくいきませんでした(他のスタックオーバーフローの記事を含む)。いくつかの注目すべきブログ投稿を以下に示します。
- http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/
- http://odetocode.com/Blogs/scott/archive/2012/08/31/seeding-membership-amp-roles-in-asp-net-mvc-4.aspx
以下のコードを参照してください。
[構成.cs]
Criterion シード コードは確実に機能します。
[_AppStart.cshtml]
私のサイトへの通常のログインは、ここにあるこれで完全に機能します。
[web.config]
[AccountModel.cs]
アップデート
WebSecurity.InitializeDatabaseConnection は実行されていないと思います.Seed メソッドに複数配置できますが、通常発生する「一度だけ呼び出すことができます」というエラーは発生しません。
私のシード メソッドはすべてのモデルと共に私のドメイン プロジェクトにあり、他のすべては WebUI プロジェクトにあります。これが何か関係があるかどうかはわかりません。
asp.net - SimpleMembershipProviderがデータベースにテーブルを追加しない
標準のASP.NETMVC4アプリケーションがあり、EFコードファーストを使用してDALを構築しています。現在、20〜30のモデルがあり、ユーザーとロールを統合したいと思っています。私はこれを1トン研究しましたが、それでも機能させることができないようです。これが私が今持っているものです:
私のデータベース初期化クラス(モデルを変更するたびに呼び出されます)で、大量のデータをシードしてから、次のように呼び出します。
デバッグにより、エラーはスローされず、このコード行にヒットしていることを確認できます。私のユーザーモデルは次のようになります。
私が読んだすべてのことから、これを機能させるために必要なことはこれだけだと思いましたが、2つの問題があります。
メンバーシップテーブルはロードされていません
WebMatrix.WebData dllを参照しているのに、Configがエラーをスローしているようです
設定セクションは次のとおりです。
ここで何が欠けていますか?
asp.net-mvc - Asp.NetMVC4でSimpleMembershipを使用してフォルダーを保護する
ASP.NETMVC4プロジェクトでSimpleMembershipプロバイダーを使用しています。web.configの次のコードが、許可されていないユーザーからフォルダーのコンテンツを保護しないのはなぜですか?
asp.net-mvc - .Net SimpleMembership UserProfile テーブル インデックスの最適化
私は .Net Simple Membership を使用しており、SQL DB にテーブルを作成しました。
次のコマンドで構築された UserProfiles テーブルに気付きました
UserId 列のみにインデックスがあります。UserName にも制約/インデックスがあるべきではありませんか?
ログインコマンド
UserName のみを認識しているように見えるため、ユーザーを取得するためにテーブル スキャンを実行します。
ここで何か不足していますか?
ありがとう
asp.net-mvc-4 - .NETMVC4SimpleMembershipエラー-「xxxという名前のユーザーが見つかりませんでした」
.NETMVC4プロジェクトでSimpleMembershipを使用しています。開発中に、データベースを手動で操作/再構築しているときに、本番環境では起こりそうもないエラーに遭遇しましたが、これを解決したいので、適切な処理方法を見つけることができません。
アプリケーションにログインした後、データベースでユーザー名が変更された場合、またはユーザーレコードが完全に削除された場合、ユーザーはアプリケーションのどのページにもアクセスできなくなります...匿名ビューを許可する公開ページを含むログイン画面。代わりに、例外がスローされます-「'username'という名前のユーザーが見つかりませんでした」。
私のアプリケーションのすべてのページは、ログイン/ログオフコントロールをレンダリングする部分的なビューを表示します。Request.IsAuthenticatedは、データベースの内容に関係なくtrueを返します。アプリは、Cookie内の情報に基づいてユーザーがまだログインしていると見なしているようですが、対応するレコードがデータベースに見つかりません。認証Cookieをクリアするとこれは解決しますが、これは、これを経験している可能性のあるユーザーに提供したい指示ではありません。
私の現在の解決策は、Global.asaxでその例外をキャッチし、Cookieをクリアして、ログインページにリダイレクトすることです。これは私には完全にハッキーに思えます。
誰かがこのシナリオに対するより良い解決策を持っていますか?古い.NETメンバーシッププロバイダーを使用してこのような問題に遭遇したことはありません...この状況は箱から出してすぐにカバーされるべきであり、それを説明する必要はないはずです...レコードが変更された場合DBで/deletedされた場合、ユーザーは認証に失敗し、自動的にログインページにリダイレクトされます。
wcf - Roles.IsUserInRole() が wsHttpBinding と MVC 4 を使用して WCF で機能しない
次のテスト設定があり、すべて機能しています。
-MathService.svc を実行する WCF アプリケーション、SimpleMembershipProvider を使用するためのセットアップ
-デフォルトの SimpleMembershipProvider を使用する MVC 4 インターネット アプリ
- メンバーシップは次のとおりです。
- 3 つの役割: 「デバッグ」、「管理者」、「編集者」
- 2 ユーザー: ロール デバッグおよび管理者の「デバッグ」(ya、ロール デバッグのユーザー デバッグ)
- ロール管理者の「管理者」
-証明書、機能しているとわかる限り、wshttpを使用してサービスに接続できます
サービス方法コード。
「Roles.GetRolesForUser(cltName)」および IsUserInRole の呼び出しが失敗するのはなぜですか?
「ServiceSecurityContext」から正しいユーザー名を取得します。[PrincipalPermission] 属性を有効にすると、ユーザー Admin でサービスを呼び出すと、予想どおり拒否されます。
では、なぜ PrincipalPermission は正しいユーザー ロールを取得できるのでしょうか? Roles.GetUsersInRole("Debug") を使用して正しいユーザーをすべて取得できるのに、Roles.IsUserInRole(..) を呼び出せないのはなぜですか?
証明書 / /membership のセットアップ エラーを示唆する投稿がいくつかありますが、これまでにどのように取得でき、セットアップが間違っているのかわかりません。何よりも、すべてではなく、一部のロール メソッドが失敗するだけです。ポインタはありますか?
返された結果について一言。ロールの回避策を使用してデバッグ経由で呼び出すと、サービスは倍精度を返します。管理者 [PrincipalPermission] を無効にして呼び出すと、整数精度が返されます。
よろしく、 アンドレアス
asp.net-mvc-4 - UserIdをUser.Identityに保持できますか?MVC4 SimpleMembership
SimpleMembershipがUserIdをどこかに保持するのか、そうでない場合は、派生データを保持するように強制するのか疑問に思います。
私には簡単な行動があります:
そして私のMiniProfilerは言います:
したがって、UserIdのクエリを複製しました。最初にロールを取得し、次に。を呼び出しWebSecurity.GetUserId(User.Identity.Name);
ます。[承認]を呼び出した後、UserIdをどこかに保存するスマートな方法はありますか?
asp.net-mvc - MVC 4で役割が初期化されるのはいつですか?ログインに成功した後ではありません
いくつかの役割ベースの依存関係(Ioc、Ninject)を設定したい。ただし、ログインが成功した後、ユーザーの役割は不明です。注射をいつどこで行うか?ロールの初期化を強制できますか?または、自分で取得する必要がありますか?
アプリケーションはHomeContoller(ロールセットなし)で始まり、ログインに成功すると、アプリケーションはde HomeControllerにリダイレクトされ(上記の標準コードを参照)、ロールが設定されます... 1つのトリックは、ロールを強制的に初期化することです。すべての役割または追加の「共通」役割を追加することによるHomeController
ただし、これによりログインが強制され、HomeControllerも開始点として強制されます。うまくいけば、私のDoRolebasedObjectBindingを呼び出すための「エレガントな」場所です。
asp.net-mvc - SimpleMembershipProvider (エンティティ) にカスタム ユーザー アカウントを管理させる必要がありますか?
設定
そのため、特に WebMatrix.WebData.Websecurity を介して、ASP.net MVC (具体的には 4.5) で新しいシンプル メンバーシップ/ロール プロバイダーを使用しようとしています。
プロバイダー機能を利用して、プロバイダーをカスタム ユーザー テーブルにポイントしました。
また、選択した ORM として NHibernate を使用しています。
問題
上記のセットアップでは、単純なプロバイダーがユーザー アカウントを作成するために使用するエンティティ フレームワークを許可し、作成後に (NHibernate を使用して) ユーザー アカウントをロードして、追加データで更新するように制限する必要があるように思われます。
これは正しいです?
ノート
はい、この質問は、単純な .NET メンバーシップ プロバイダーまたは任意の .NET メンバーシップ プロバイダーに基づいてカスタム プロバイダーを作成しようとしていないことに基づいています。
asp.net-mvc - シンプルなメンバーシップ WebSecurity.CreateUserAndAccount が重複した UserId エラーを与える
MVC 4 の使用、Simplemembership
企業で使用する Web アプリケーションを構築しているため、すぐに使える MVC 4 テンプレート機能を使用してユーザーが登録できるようにしたくありません。代わりに、管理者のみがアクセスしてユーザーを作成できる [ユーザーの作成] ビューが必要です。登録コントローラーのセキュリティを変更して、現在ログインしているユーザーに既存の登録ビューを使用してユーザーを作成させることができることを望んでいました...サイコロはありません。
これがコントローラーのコードです。テンプレートから変更していません:
現在ログインしているユーザーがこれを介して新しいユーザーを作成しようとすると、エラーが発生します (@ 行 86):
Hwre は UserProfile クラスです
WebSecurity.CurrentUserID には、現在ログインしているユーザーが入力されています。これが問題の原因であると思います。simplemembership プロバイダーを使用してこれを達成する正しい方法は何ですか?
編集:これを匿名ユーザーの登録を許可するように戻そうとしたので、デバッグ時に WebSecurity.CurrentUserID が -1 になり、それでも同じエラーが発生します。クラスの UserId フィールドが属性 [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] で装飾されている場合、重複キーがどのように生成されるのでしょうか?