1

我正在关注这个示例http://msdn.microsoft.com/en-us/library/ms998331.aspx但似乎在搞砸一些事情。

我不断得到

参数不正确。(来自 HRESULT 的异常:0x80070057 (E_INVALIDARG))

抛出错误的行:

第 30 行:if (Roles.IsUserInRole("TestRole"))

堆栈跟踪:

[ArgumentException:参数不正确。(来自 HRESULT 的异常:0x80070057 (E_INVALIDARG))]

[TargetInvocationException:调用的目标已引发异常。]
   System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32culture, String[] namedParameters) +0
   System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] 修饰符, CultureInfoculture, String[] namedParams) +337
   System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, CultureInfoculture) +36
   System.Web.Security.AuthorizationStoreRoleProvider.CallMethod(Object objectToCallOn, String methodName, Object[] args) +183
   System.Web.Security.AuthorizationStoreRoleProvider.GetClientContextFromName(字符串用户名)+167
   System.Web.Security.AuthorizationStoreRoleProvider.GetClientContext(String userName) +70
   System.Web.Security.AuthorizationStoreRoleProvider.GetRolesForUserCore(字符串用户名)+59
   System.Web.Security.AuthorizationStoreRoleProvider.GetRolesForUser(字符串用户名)+72
   System.Web.Security.RolePrincipal.IsInRole(字符串角色)+164
   System.Web.Security.Roles.IsUserInRole(字符串用户名,字符串角色名称)+355
   System.Web.Security.Roles.IsUserInRole(字符串角色名称)+19
   _Default.ShowRoleMembership() 在 c:\projects\adamtest\Default.aspx.cs:30
   _Default.Page_Load(Object sender, EventArgs e) 在 c:\projects\adamtest\Default.aspx.cs:24
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o,对象 t,EventArgs e)+14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者,EventArgs e)+35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+627

我从示例中复制的角色管理器配置

<roleManager
    enabled="true"
    cacheRolesInCookie="true"
    defaultProvider="RoleManagerAzManADAMProvider"
    cookieName=".ASPXROLES"
    cookiePath="/"
    cookieTimeout="30"
    cookieRequireSSL="true"
    cookieSlidingExpiration="true"
    createPersistentCookie="false"
    cookieProtection="All">

    <providers>
        <add name="RoleManagerAzManADAMProvider"
     type="System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, 
             publicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="AzManADAMServer"
             applicationName="AzManDemo"/>
      </providers>
    </roleManager>
4

0 回答 0