这只是在不久前发生在我身上。在我的代码中,我需要获取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
instatiatedSqlRoleProvider
不起作用?因为这也可能发生在我将要处理的下一段代码中,即使用RemoveUsersFromRoles
and AddUsersToRoles
。而且,程序在寻找什么样的实例?我没有为该方法工作实例化什么?