2009-11-15 3 views

답변

1

그것은 해킹의 종류,하지만 여기에 나는 클라이언트 응용 프로그램 서비스에 대한 역할을 구성

ClientRoleProvider crp = new ClientRoleProvider(); 
// Initialize 
NameValueCollection crp_config = new NameValueCollection(); 
crp_config.Add("serviceUri", "www.mydomain.com/Role_JSON_AppService.axd"); 
crp_config.Add("cacheTimeout", 5); 
crp_config.Add("honorCookieExpiry", 300); 
crp.Initialize("ClientRoleProvider", crp_config); 

//RoleProviderCollection 
RoleProviderCollection rpc = new RoleProviderCollection(); 
rpc.Add(crp); 
rpc.SetReadOnly(); 

//Roles 
BindingFlags enuBindingFlags = BindingFlags.NonPublic | BindingFlags.Static; 
Type objRoleType = typeof(Roles); 
objRoleType.GetField("s_Initialized", enuBindingFlags).SetValue(null, true); 
objRoleType.GetField("s_InitializeException", enuBindingFlags).SetValue(null, null); 
objRoleType.GetField("s_Enabled", enuBindingFlags).SetValue(null, true); 
objRoleType.GetField("s_CookieName", enuBindingFlags).SetValue(null, ".ASPXROLES"); 
objRoleType.GetField("s_CacheRolesInCookie", enuBindingFlags).SetValue(null, false); 
objRoleType.GetField("s_CookieTimeout", enuBindingFlags).SetValue(null, (int)30); 
objRoleType.GetField("s_CookiePath", enuBindingFlags).SetValue(null, "/"); 
objRoleType.GetField("s_CookieRequireSSL", enuBindingFlags).SetValue(null, false); 
objRoleType.GetField("s_CookieSlidingExpiration", enuBindingFlags).SetValue(null, true); 
objRoleType.GetField("s_CookieProtection", enuBindingFlags).SetValue(null, CookieProtection.All); 
objRoleType.GetField("s_Domain", enuBindingFlags).SetValue(null, null); 
objRoleType.GetField("s_CreatePersistentCookie", enuBindingFlags).SetValue(null, false); 
objRoleType.GetField("s_MaxCachedResults", enuBindingFlags).SetValue(null, (int)25); 
objRoleType.GetField("s_Provider", enuBindingFlags).SetValue(null, crp); 
objRoleType.GetField("s_Providers", enuBindingFlags).SetValue(null, rpc); 
0

http://msdn.microsoft.com/en-us/library/5k850zwb.aspx

Roles.CreateRole("members"); 
Roles.CreateRole("manager"); 

Roles.AddUserToRole("JoeWorden", "manager"); 
string[] userGroup = new string[2]; 
userGroup[0] = "JillShrader"; 
userGroup[1] = "ShaiBassli"; 
Roles.AddUsersToRole(userGroup, "members"); 

스틱에서 Global.asax에와 밥의 삼촌 (위해 Application_Start는 아마 당신의 최선의 방법이다) 그.

+0

하지만 난 여전히 같은으로 Web.config의 필요에 응답으로 : = "true를 활성화 <으로 roleManager " cacheRolesInCookie ="true "> Nestor

관련 문제