これはほんの少し前に私に起こりました。私のコードではRoles
、指定されたユーザーが割り当てられていることを取得する必要があります。
これが私のコードの内容です:
string[] roles = {};
SqlRoleProvider fxSRP = new SqlRoleProvider();
string id = Request.QueryString["UserName"] as string;
string userName = id;
これで問題ありませんが、このビットに到達すると:
roles = fxSRP.GetRolesForUser(userName);
Object reference not set to an instance of an object
システムは、見捨てられた例外をスローします。正直なところ、数分間私を夢中にさせました。しかし、その小さなコードをこれに変更すると (これは明示的な呼び出しですよね?):
roles = Roles.GetRolesForUser(userName);
コードは機能します。ユーザーの を取得して、好きなようにRoles
使用できます。
知りたいのですが、なぜGetRolesForUser
instatiatedを使用してもうまくSqlRoleProvider
いかないのですか? これは、私が作業する次のコードでも発生する可能性があるためRemoveUsersFromRoles
ですAddUsersToRoles
。また、プログラムはどのようなインスタンスを探していますか? メソッドが機能するためにインスタンス化していないものは何ですか?