0

我们的客户中很少有人经常收到无效的强制转换异常,有变体,即InvalidCastException/ ProviderException,但都是从方法调用产生的:System.Web.Security.SqlRoleProvider.GetRolesForUser(String username)

另一个变体是:

异常类型:InvalidCastException
异常消息:无法将类型的对象System.Int32转换为 type System.String

我查看了应用程序事件日志,其中显示:

Stack trace:
   at System.Web.Security.SqlRoleProvider.GetRolesForUser(String username)
   at System.Web.Security.RolePrincipal.IsInRole(String role)
   at System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal)
   at System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb)
   at System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb)
   at System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)*

有没有人遇到过这个问题,如果有,解决方法是什么?

谢谢

JS

4

1 回答 1

0

错误消息告诉您您正在尝试将整数类型转换(读取转换)为字符串类型,并且该转换不成功。这发生在 GetRolesForUser(String) 函数中。因此,也许您传递的是整数而不是字符串,并且解析不正确。无论哪种方式,我们都需要更多的代码来确定。我希望这有帮助。

尝试确保每当你给需要字符串传递的东西提供一个整数时,首先调用它的 toString() 函数。例如:

GetRolesForUser(someInt32Var.toString())
于 2009-10-20T04:18:58.660 回答