問題タブ [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-membership - Membership.ValidateUser() が常に false を返すのはなぜですか?
ASP.NET 2010 アプリがあります。登録プロセスを実行すると、正しくログインできます。ただし、後でログインしようとすると、ValidateUser は常に false を返します。
正しいユーザー名とパスワードが送信され、この人物がデータベース (Express) に存在することを確認しました。これが私のWeb.Configです....すべて通常のものです。
asp.net - SimpleMembershipProvider が機能しない
VS2012 で新しいインターネット プロジェクトを開始し、プロジェクトを少し再構築しようとしていますが、SimpleMemberhsipProvider を機能させ続けることができないようです。基本的に、私が行ったのは、モデル オブジェクトを他のいくつかのアイテムと共にコア プロジェクトに移動したことだけです。Ninject を実装し、リポジトリ パターンを使用してデータを取得することでエンティティを少し抽象化しようとしています。現在のプロジェクトであまり変更されたようには感じませんが、何らかの理由でアプリケーションを起動すると、次のようになります。
{"ロール マネージャー機能が有効になっていません。"}
フレームワークによって提供される ActionFilter は、次の場合にエラーがスローされる場所です。
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
と呼ばれます。
スタックトレースの一部を次に示します。
[ProviderException: ロール マネージャー機能が有効になっていません。]
System.Web.Security.Roles.EnsureEnabled() +9561885
System.Web.Security.Roles.get_Provider() +8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer.. c:\Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:42 の ctor()[InvalidOperationException: ASP.NET シンプル メンバーシップ データベースを初期化できませんでした。詳細については 、c:\Users\Kyle\Documents\Visual Studio 2012 のhttp://go.microsoft.com/fwlink/?LinkId=256588]
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor()を参照してください。 \Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs:46
次のリンクで github でコードをホストしていますhttps://github.com/keroger2k/InoutBoard
asp.net-mvc-4 - simplemembershipを使用した新しいMVC4インターネットテンプレートでの役割ベースの認証
VS2012RTMの外部ログイン用のOAuthへのリンクを備えたMVC4インターネットテンプレートの新しいsimplemembership機能が気に入っています。ほとんどの場合、認証機能が機能しています。ただし、これに8時間以上費やした後でも、コントローラーで動作するロールベースの承認を実装できません。SimpleMembershipは単純ではないことが判明しています。
私はstackoverflowを検索し、グーグルで検索し、John Gallowayによる最新情報を読み、多くの提案を試しましたが、それでもこの問題を解決することはできませんでした。それはすべてSQL接続エラーを取得することから始まり、接続文字列と他のすべてが良好だった理由を理解できませんでした。問題を引き起こしているのはRolesクラスであることがわかるまでに何時間もかかりました。
コントローラの[Authorize]属性は、基本認証の場合と同様に機能します。しかし、ロールを使用しようとすると、SQL接続エラーが発生します(デフォルトのSqlExpress aspnetdbファイルに接続しようとして失敗する古いDefaultRolesProviderに戻るため)。だから次のようなもの:
動作しません。古いasp.netメンバーシッププロバイダーに戻ると機能しますが、単純なデータベーステーブル、トークンベースの確認と回復、より安全なパスワードハッシュ、さらに重要なことにOAuthを介した外部ログインが失われます。
コードとかみそりのビュー内で機能するのは
これはメニュー項目などには問題ありませんが、コントローラーのすべてのアクション内に実装するのは非常に面倒です(一度に単一の役割のみをテストするのは好きではありません)。
この問題を解決するためのガイダンスをいただければ幸いです。
entity-framework - WebForm 4.5 と EntityFramework で SimpleMembership を使用するには?
ASP.NET 4.5 (メンバーシップ プロバイダーなど) を使用した新しいプロバイダーがあると聞いたことがありますが、SimpleMembership を WebForm ASP.NET 4.5 および EntityFramework で使用することについて適切なものが見つからないようです。上記で指定されたテクノロジ (SQL スキーマの作成、プロジェクトの構成) を使用して SimpleMembership を実装する方法について、適切なドキュメントまたは説明はありますか?
asp.net-mvc-4 - SimpleMembership、MVC4、AuthorizeAttribute、およびロール
[Authorize]
一部の MVC4 コントローラーに承認属性を追加しようとしていますが、プランまたはである限り正常[Authorize(Users="myuser")]
に機能しますが、2 番目に任意の種類のロール フィルタリングを追加すると、バラバラになります。[Authorize(Roles="admin")]
. 次に、次のようなエラーが発生し始めます。
「/」アプリケーションでサーバー エラーが発生しました。
SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
SQLExpress データベース ファイルの自動作成エラー:
接続文字列は、アプリケーションの App_Data ディレクトリ内のデータベースの場所を使用して、ローカルの Sql Server Express インスタンスを指定します。プロバイダーは、データベースが存在しないと判断したため、アプリケーション サービス データベースを自動的に作成しようとしました。アプリケーション サービス データベースの存在を正常に確認し、アプリケーション サービス データベースを自動的に作成するには、次の構成要件が必要です。
アプリケーションが Windows 7 または Windows Server 2008R2 で実行されている場合、プロバイダー データベースの自動作成を有効にするには、特別な構成手順が必要です。追加情報は、http: //go.microsoft.com/fwlink/?LinkId=160102で入手できます。. アプリケーションの App_Data ディレクトリがまだ存在しない場合、Web サーバー アカウントには、アプリケーションのディレクトリへの読み取りおよび書き込みアクセス権が必要です。App_Data ディレクトリがまだ存在しない場合、Web サーバー アカウントは自動的に作成するため、これが必要です。アプリケーションの App_Data ディレクトリが既に存在する場合、Web サーバー アカウントには、アプリケーションの App_Data ディレクトリへの読み取りおよび書き込みアクセスのみが必要です。これが必要になるのは、アプリケーションの App_Data ディレクトリ内に Sql Server Express データベースが既に存在することを Web サーバー アカウントが検証しようとするためです。Web サーバー アカウントから App_Data ディレクトリへの読み取りアクセスを取り消すと、プロバイダーは Sql Server Express データベースが既に存在するかどうかを正しく判断できなくなります。これにより、プロバイダーが既存のデータベースの複製を作成しようとすると、エラーが発生します。新しいデータベースの作成時に Web サーバー アカウントの資格情報が使用されるため、書き込みアクセスが必要です。Sql Server Express がマシンにインストールされている必要があります。Web サーバー アカウントのプロセス ID には、ローカル ユーザー プロファイルが必要です。マシン アカウントとドメイン アカウントの両方のローカル ユーザー プロファイルを作成する方法の詳細については、readme ドキュメントを参照してください。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[SqlException (0x80131904): SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索エラー)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 例外、ブール値の breakConnection、アクション1 の再試行、DbConnectionOptions userOptions、DbConnectionInternal& 接続) +5311874 System.Data .ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 wrapCloseInAction) +5295167 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +242
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5307115
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +920
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +307
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +434
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +5309659
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions) +143
1 回の再試行) +83 System.Data.SqlClient.SqlConnection.Open() +96
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
System.Web.Management.SqlServices.GetSqlConnection(文字列サーバー、文字列ユーザー、文字列パスワード、ブール値の信頼済み、文字列接続文字列) +76[HttpException (0x80004005): SQL Server データベースに接続できません。]
System.Web.Management.SqlServices.GetSqlConnection(String server、String user、String password、Boolean trusted、String connectionString) +131
System.Web.Management.SqlServices. SetupApplicationServices(文字列サーバー、文字列ユーザー、文字列パスワード、Boolean trusted、文字列接続文字列、文字列データベース、文字列 dbFileName、SqlFeatures 機能、ブール値インストール) +89
System.Web.Management.SqlServices.Install(文字列データベース、文字列 dbFileName、文字列接続文字列) +27
System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +386バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.17929
ここで何が起こっているのか本当にわかりません。繰り返しますが、authorize 属性のロール ビットを削除すると、正常に動作します (少なくとも権限のないユーザーを停止する限り) が、管理者ユーザーをアプリにハード コードする必要がある場合は良くありません!
ここで何が起こっているのか、どうすれば適切に機能させることができるのでしょうか?
ありがとう、
asp.net-mvc-4 - SimpleMembership を使用してプロファイルを管理するにはどうすればよいですか?
インターネット テンプレートに基づいた ASP.NET MVC 4 サイトがあります。そのテンプレートで設定した SimpleMembership を使用しています。
私のために作成されたユーザー テーブルを変更できますが、追加した余分なフィールドを変更する「正しい」方法がわかりません。Fullname、Email などが必要で、それらをユーザー テーブルに追加しましたが、SimpleMembership WebSecurity.* 静的メソッドを介して更新する方法がないようです。
SimpleMembership API の外部で EF を使用してこれらのプロパティを自分で更新するだけですか?
asp.net - ASP.NET MVC 4 のカスタム データベース スキーマを使用した SimpleMembership
ASP.NET MVC 4 の SimpleMembership API を有効にして、独自のデータベース スキーマと統合したいと考えています。Users
データベースに、これらのフィールドで呼び出されるプレーンでシンプルなテーブルがあります。
- ID
- 名前
- パスワード
- Eメール
- 削除済み
データベースを使用するように SimpleMembership API を既に構成しています。
また、ユーザーも挿入できます。
ただし、Passwordフィールド(またはそのハッシュ)はUsersテーブルに挿入されず(もちろん)、呼び出しwebpages_Membership
で作成された別のテーブルに挿入されInitializeDatabaseConnection
、必要のない多くの不要な情報が含まれています。
また、必要のない webpages_OAuthMembership、webpages_Roles、webpages_UsersInRoles というテーブルが自動的に作成されました。
私はすでにテーブル生成を false に設定しようとしました:
ただし、この場合、CreateUserAndAccount 呼び出しは webpages_Membership テーブルを見つけられないため、例外をスローします。
SimpleMembership API を使用するには、これらのテーブルが必要なようです。
Users
私の質問は次のとおりです。シンプルなテーブルだけが必要な場合、このようなシナリオではどうすればよいですか?
メンバーシップの処理全体と認証ロジック (ハッシュ コードの生成など) を自分で作成する必要がありますか?
sql-server - EntityFrameworkなしでSQL Serverを使用するMVC 4 SimpleMembershipProvider
EntityFramework なしで SimpleMembershipProvider を使用して MVC 4 をセットアップすることは可能ですか? または、カスタム プロバイダーを作成する必要がありますか?
前もって感謝します!
asp.net-mvc-4 - ユーザー名または電子メールを使用してログインする WebSecurity.Login を作成する方法は?
WebSecurity.Login
シンプルメンバーシップでは、ユーザー名とパスワードを使用します。ユーザー名だけでなくユーザー名または電子メールを使用してユーザーをログインさせるにはどうすればよいですか?、ユーザーが電子メールまたはユーザー名を自由に入力してログインできるようにします。
c# - シンプルなメンバーシッププロバイダーの関係
デフォルトのメンバーシッププロバイダーを使用するASP.NETMVC3では、
SimpleMembershipProviderを使用するASP.NETMVC4では、SMPと互換性のあるMembership.GetUser()およびクラスMembershipUserと同等のメソッドは何ですか?