


RBAC角色權(quán)限設(shè)計(jì)思路,rbac角色設(shè)計(jì)思路_PHP教程
Jul 12, 2016 am 08:55 AMRBAC角色權(quán)限設(shè)計(jì)思路,rbac角色設(shè)計(jì)思路
1?設(shè)計(jì)思路
為了設(shè)計(jì)一套具有較強(qiáng)可擴(kuò)展性的用戶認(rèn)證管理,需要建立用戶、角色和權(quán)限等數(shù)據(jù)庫(kù)表,并且建立之間的關(guān)系,具體實(shí)現(xiàn)如下。 1.1?用戶 用戶僅僅是純粹的用戶,用來(lái)記錄用戶相關(guān)信息,如用戶名、密碼等,權(quán)限是被分離出去了的。用戶(User)要擁有對(duì)某種資源的權(quán)限,必須通過(guò)角色(Role)去關(guān)聯(lián)。 用戶通常具有以下屬性: ü?????????編號(hào),在系統(tǒng)中唯一。 ü?????????名稱,在系統(tǒng)中唯一。 ü?????????用戶口令。 ü?????????注釋,描述用戶或角色的信息。 1.2 角色 角色是使用權(quán)限的基本單位,擁有一定數(shù)量的權(quán)限,通過(guò)角色賦予用戶權(quán)限,通常具有以下屬性: ü?????????編號(hào),在系統(tǒng)中唯一。 ü?????????名稱,在系統(tǒng)中唯一。 ü?????????注釋,描述角色信息 1.3 權(quán)限 ?????? 權(quán)限指用戶根據(jù)角色獲得對(duì)程序某些功能的操作,例如對(duì)文件的讀、寫、修改和刪除功能,通常具有以下屬性: ü?????????編號(hào),在系統(tǒng)中唯一。 ü?????????名稱,在系統(tǒng)中唯一。 ü?????????注釋,描述權(quán)限信息 1.4 用戶與角色的關(guān)系 一個(gè)用戶(User)可以隸屬于多個(gè)角色(Role),一個(gè)角色組也可擁有多個(gè)用戶,用戶角色就是用來(lái)描述他們之間隸屬關(guān)系的對(duì)象。用戶(User)通過(guò)角色(Role)關(guān)聯(lián)所擁有對(duì)某種資源的權(quán)限,例如 l?????????用戶(User): UserID????? UserName????? UserPwd 1?????????????????? 張三????????????? ?? xxxxxx 2?????????????????? 李四????????????? ?? xxxxxx???? …… l?????????角色(Role): RoleID?????????? RoleName?????? ?? RoleNote ?????? 01????????????????? 系統(tǒng)管理員??? ?? 監(jiān)控系統(tǒng)維護(hù)管理員 ?????? 02????????????????? 監(jiān)控人員?????? ?? 在線監(jiān)控人員 ?????? 03????????????????? 調(diào)度人員?????? ?? 調(diào)度工作人員 ?????? 04????????????????? 一般工作人員?? 工作人員 ?????? …… l?????????用戶角色(User_Role): UserRoleID ????????? UserID?????????? RoleID?????????? UserRoleNote 1?????????????????? ??? 1?????????????????? 01????????????????? 用戶“張三”被分配到角色“系統(tǒng)管理員” 2?? ???????????????????? 2?????????????????? 02????????????????? 用戶“李四”被分配到角色“監(jiān)控人員” 3?? ???????????????????? 2?????????????????? 03????????????????? 用戶“李四”被分配到角色“調(diào)度人員” …… ?????? 從該關(guān)系表可以看出,用戶所擁有的特定資源可以通過(guò)用戶角色來(lái)關(guān)聯(lián)。 1.5 權(quán)限與角色的關(guān)系 一個(gè)角色(Role)可以擁有多個(gè)權(quán)限(Permission),同樣一個(gè)權(quán)限可分配給多個(gè)角色。例如: l?????????角色(Role): RoleID?????????? RoleName?????? ?? RoleNote ?????? 01????????????????? 系統(tǒng)管理員??? ?? 監(jiān)控系統(tǒng)維護(hù)管理員 ?????? 02????????????????? 監(jiān)控人員?????? ?? 在線監(jiān)控人員 ?????? 03????????????????? 調(diào)度人員?????? ?? 調(diào)度工作人員 ?????? 04????????????????? 一般工作人員?? 工作人員 ?????? …… l?????????權(quán)限(Permission): PermissionID??? ??PermissionName??? ???PermissionNote 0001???????????????????? ?? 增加監(jiān)控??????????????? ?允許增加監(jiān)控對(duì)象 0002???????????????????? ?? 修改監(jiān)控??????????????? ?允許修改監(jiān)控對(duì)象 0003???????????????????? ?? 刪除監(jiān)控??????????????? ?允許刪除監(jiān)控對(duì)象 0004???????????????????? ?? 察看監(jiān)控信息????? ?允許察看監(jiān)控對(duì)象 …… l?????????角色權(quán)限(Role_Permission): RolePermissionID?? RoleID?PermissionID?RolePermissionNote 1????????????????????????? ?? 01??????????? 0001???? ?? 角色“系統(tǒng)管理員”具有權(quán)限“增加監(jiān)控” 2????????????????????????? ?? 01??????????? 0002???? ?? 角色“系統(tǒng)管理員”具有權(quán)限“修改監(jiān)控” 3????????????????????????? ?? 01??????????? 0003???? ?? 角色“系統(tǒng)管理員”具有權(quán)限“刪除監(jiān)控” 4????????????????????????? ?? 01??????????? 0004???? ?? 角色“系統(tǒng)管理員”具有權(quán)限“察看監(jiān)控” 5????????????????????????? ?? 02??????????? 0001???? ?? 角色“監(jiān)控人員”具有權(quán)限“增加監(jiān)控” 6????????????????????????? ?? 02??????????? 0004???? ?? 角色“監(jiān)控人員”具有權(quán)限“察看監(jiān)控” …… ?????? 由以上例子中的角色權(quán)限關(guān)系可以看出,角色權(quán)限可以建立角色和權(quán)限之間的對(duì)應(yīng)關(guān)系。 1.6 建立用戶權(quán)限 用戶權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:創(chuàng)造權(quán)限、分配權(quán)限和使用權(quán)限。 第一步由Creator創(chuàng)造權(quán)限(Permission),Creator在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí)會(huì)劃分。利用存儲(chǔ)過(guò)程CreatePermissionInfo(@PermissionName,@PermissionNote)創(chuàng)建權(quán)限信息,指定系統(tǒng)模塊具有哪些權(quán)限。 第二步由系統(tǒng)管理員(Administrator)創(chuàng)建用戶和角色,并且指定用戶角色(User-Role)和角色權(quán)限(Role-Permission)的關(guān)聯(lián)關(guān)系。1)????????具有創(chuàng)建用戶、修改用戶和刪除用戶的功能:?Administrator
l?????????存儲(chǔ)過(guò)程CreateUserInfo(@UserName,@UserPwd)創(chuàng)建用戶信息; l?????????存儲(chǔ)過(guò)程ModifyUserInfo(@UserName,@UserPwd)修改用戶信息; l?????????存儲(chǔ)過(guò)程DeleteUserInfo(@UserID)刪除用戶信息;2)????????具有創(chuàng)建角色和刪除角色的功能:?Administrator
l?????????存儲(chǔ)過(guò)程CreateRoleInfo(@RoleName,@RoleNote)創(chuàng)建角色信息; l?????????存儲(chǔ)過(guò)程DeleteRoleInfo(@RoleID)刪除角色信息; 3)Administrator具有建立用戶和角色、角色和權(quán)限的關(guān)聯(lián)關(guān)系功能: l?????????存儲(chǔ)過(guò)程GrantUserRole(@UserID,@RoleID,@UserRoleNote)建立用戶和角色的關(guān)聯(lián)關(guān)系; l?????????存儲(chǔ)過(guò)程DeleteUserRole(@UserRoleID)刪除用戶和角色的關(guān)聯(lián)關(guān)系; l?????????存儲(chǔ)過(guò)程GrantRolePermission(@RoleID,@PermissionID,@RolePermissionNote)建立角色和權(quán)限的關(guān)聯(lián)關(guān)系; l?????????存儲(chǔ)過(guò)程DeleteRolePermission(@RolePermissionID)刪除角色和權(quán)限的關(guān)聯(lián)關(guān)系; 第三步用戶(User)使用Administrator分配給的權(quán)限去使用各個(gè)系統(tǒng)模塊。利用存儲(chǔ)過(guò)程GetUserRole(@UserID, @UserRoleID output),GetRolePermission(@RoleID,@Role- -PermissinID output)獲得用戶對(duì)模塊的使用權(quán)限。 1.7 用戶認(rèn)證實(shí)現(xiàn) 當(dāng)用戶通過(guò)驗(yàn)證后,由系統(tǒng)自動(dòng)生成一個(gè)128位的TicketID保存到用戶數(shù)據(jù)庫(kù)表中,建立存儲(chǔ)過(guò)程Login(@UserID,@UserPwd,@TicketID output)進(jìn)行用戶認(rèn)證,認(rèn)證通過(guò)得到一個(gè)TicketID,否則TicketID為null。其流程圖如下: ? 圖1 Login流程圖 得到TicketID后,客戶端在調(diào)用服務(wù)端方法時(shí)傳遞TicketID,通過(guò)存儲(chǔ)過(guò)程JudgeTicketPermission(@TicketID,@PermissionID)判斷TicketID對(duì)應(yīng)的用戶所具有的權(quán)限,并根據(jù)其權(quán)限進(jìn)行方法調(diào)用。 當(dāng)用戶退出系統(tǒng)時(shí),建立存儲(chǔ)過(guò)程Logout(@UserID)來(lái)退出系統(tǒng)。當(dāng)用戶異常退出系統(tǒng)時(shí),根據(jù)最后的登陸時(shí)間(LastSignTime)確定用戶的TickeID,建立存儲(chǔ)過(guò)程ExceptionLogout(@UserID,@LastSignTime)處理用戶的異常退出。 ? 圖2 Logout流程圖 WebService可以采用SoapHeader中寫入TicketID來(lái)使得TicketID從客戶端傳遞給服務(wù)端。.Net Remoting可以采用CallContext類來(lái)實(shí)現(xiàn)TicketID從客戶端傳遞給服務(wù)端。 2?數(shù)據(jù)庫(kù)設(shè)計(jì) 2.1 數(shù)據(jù)庫(kù)表 ? 圖3 數(shù)據(jù)庫(kù)關(guān)系圖 2.2 數(shù)據(jù)庫(kù)表說(shuō)明 2.2.1 用戶表(Static_User) ? Static_User?
Static_User字段名 |
詳細(xì)解釋 |
類型 |
備注 |
UserID |
路線編號(hào) |
varchar(20) |
PK |
UserName |
用戶名稱 |
varchar(20) |
? ? |
UserPwd |
用戶密碼 |
varchar(20) |
? ? |
LastSignTime |
最后登陸時(shí)間 |
datatime |
? ? |
SignState |
用戶登陸狀態(tài)標(biāo)記 |
int |
? ? |
TickeID |
驗(yàn)證票記錄編號(hào) |
varchar(128) |
? ? |
? ? |
? ? |
? ? |
? ? |
?
?
?
2.2.2 角色表(Static_Role) ? Static_Role?
Static_User字段名 |
詳細(xì)解釋 |
類型 |
備注 |
RoleID |
角色編號(hào) |
varchar(20) |
PK |
RoleName |
角色名稱 |
varchar(20) |
? ? |
RoleNote |
角色信息描述 |
varchar(20) |
? ? |
? ? |
? ? |
? ? |
? ? |
?
?
2.2.3 用戶-角色表(Static_User_Role) ? Static_User_Role?
Static_User字段名 |
詳細(xì)解釋 |
類型 |
備注 |
UserRoleID |
用戶角色編號(hào) |
varchar(20) |
PK |
UserID |
用戶編號(hào) |
varchar(20) |
FK |
RoleID |
角色編號(hào) |
varchar(20) |
FK |
UserRoleNote |
用戶角色信息描述 |
varchar(20) |
? ? |
? ? |
? ? |
? ? |
? ? |
?
?
2.2.4 權(quán)限表(Static_Permission) ? Static_Permission?
Static_User字段名 |
詳細(xì)解釋 |
類型 |
備注 |
PermissionID |
編號(hào) |
varchar(20) |
PK |
PermissionName |
權(quán)限名稱 |
varchar(20) |
? ? |
PermissionNote |
全息信息描述 |
varchar(20) |
? ? |
? ? |
? ? |
? ? |
? ? |
?
?
2.2.5 角色-權(quán)限表(Static_Role_Permission) ? Static_Role_Permission?
Static_User字段名 |
詳細(xì)解釋 |
類型 |
備注 |
RolePermissionID |
角色權(quán)限編號(hào) |
varchar(20) |
PK |
RoleID |
角色編號(hào) |
varchar(20) |
FK |
PermissionID |
權(quán)限編號(hào) |
varchar(20) |
FK |
RolePermissionNote |
角色權(quán)限信息描述 |
varchar(20) |
? ? |
? ? |
? ? |
? ? |
? ? |
?
3 .net技術(shù)概要 3.1 WebService SoapHeader 對(duì) SQL?數(shù)據(jù)庫(kù)執(zhí)行自定義身份驗(yàn)證和授權(quán)。在這種情況中,應(yīng)向服務(wù)傳遞自定義憑據(jù)(如用戶名和密碼),并讓服務(wù)自己處理身份驗(yàn)證和授權(quán)。 將額外的信息連同請(qǐng)求一起傳遞給 XML Web 服務(wù)的簡(jiǎn)便方法是通過(guò) SOAP 標(biāo)頭。為此,需要在服務(wù)中定義一個(gè)從 SOAPHeader 派生的類,然后將服務(wù)的公共字段聲明為該類型。這在服務(wù)的公共合同中公開(kāi),并且當(dāng)從 WebServiceUtil.exe 創(chuàng)建代理時(shí)可由客戶端使用,如下例所示:?
?
??
<span> </span>
using?System.Web.Services;
using?System.Web.Services.Protocols;
?
// AuthHeader class extends from SoapHeader
public class?AuthHeader : SoapHeader {
????public string?Username;
????public string?Password;
}
?
public class?HeaderService : WebService {
????public?AuthHeader sHeader;
??? ...
} 服務(wù)中的每個(gè) WebMethod 都可以使用 SoapHeader 自定義屬性定義一組關(guān)聯(lián)的標(biāo)頭。默認(rèn)情況下,標(biāo)頭是必需的,但也可以定義可選標(biāo)頭。SoapHeader 屬性指定公共字段的名稱或者 Client 或 Server 類的屬性(本標(biāo)題中稱為 Headers 屬性)。在為輸入標(biāo)頭調(diào)用方法前,WebService 設(shè)置 Headers 屬性的值;而當(dāng)方法為輸出標(biāo)頭返回時(shí),WebService 檢索該值。[WebMethod(Description="This method requires a custom soap header set by the caller")]
[SoapHeader("sHeader")]
public string?SecureMethod() {
?
if?(sHeader ==?null)
return?"ERROR: Please supply credentials";
else
return?"USER: " + sHeader.Username;
?
}
然后,客戶端在調(diào)用要求標(biāo)頭的方法之前,直接在代理類上設(shè)置標(biāo)頭,如下面的示例所示:HeaderService h =?new HeaderService();
AuthHeader myHeader =?new AuthHeader();
myHeader.Username = "username";
myHeader.Password = "password";
h.AuthHeader = myHeader;
String result = h.SecureMethod();
3.2 .Net Remoting的安全認(rèn)證方式 CallContext提供與執(zhí)行代碼路徑一起傳送的屬性集,CallContext是類似于方法調(diào)用的線程本地存儲(chǔ)的專用集合對(duì)象,并提供對(duì)每個(gè)邏輯執(zhí)行線程都唯一的數(shù)據(jù)槽。數(shù)據(jù)槽不在其他邏輯線程上的調(diào)用上下文之間共享。當(dāng) CallContext 沿執(zhí)行代碼路徑往返傳播并且由該路徑中的各個(gè)對(duì)象檢查時(shí),可將對(duì)象添加到其中。當(dāng)對(duì)另一個(gè) AppDomain 中的對(duì)象進(jìn)行遠(yuǎn)程方法調(diào)用時(shí),CallContext 類將生成一個(gè)與該遠(yuǎn)程調(diào)用一起傳播的 LogicalCallContext 實(shí)例。只有公開(kāi) ILogicalThreadAffinative 接口并存儲(chǔ)在 CallContext 中的對(duì)象被在 LogicalCallContext 中傳播到 AppDomain 外部。不支持此接口的對(duì)象不在 LogicalCallContext 實(shí)例中與遠(yuǎn)程方法調(diào)用一起傳輸。 CallContext.SetData方法存儲(chǔ)給定對(duì)象并將其與指定名稱關(guān)聯(lián),CallContext.GetData方法從 CallContext 中檢索具有指定名稱的對(duì)象。 下面的代碼示例說(shuō)明如何使用 SetData 方法將主體和標(biāo)識(shí)對(duì)象傳輸?shù)竭h(yuǎn)程位置以進(jìn)行標(biāo)識(shí)。public class?ClientClass {
???public static void?Main() {
????? GenericIdentity ident =?new?GenericIdentity("Bob");
?? ???GenericPrincipal prpal =?new?GenericPrincipal(ident,
?? ?????????????????????????????????????? Newstring[] {"Level1"});
????? LogicalCallContextData data =
?new LogicalCallContextData(prpal);
??????//Enter data into the CallContext
????? CallContext.SetData("test data", data);
?
?????
????? Console.WriteLine(data.numOfAccesses);
????? ChannelServices.RegisterChannel(new?TcpChannel());
????? RemotingConfiguration.RegisterActivatedClientType(
typeof(HelloServiceClass), "tcp://localhost:8082");
????? HelloServiceClass service =?new?HelloServiceClass();
??????if(service ==?null) {
????????? Console.WriteLine("Could not locate server.");
??????????return;
????? }
?
??????// call remote method
????? Console.WriteLine();
????? Console.WriteLine("Calling remote object");
????? Console.WriteLine(service.HelloMethod("Caveman"));
????? Console.WriteLine(service.HelloMethod("Spaceman"));
????? Console.WriteLine(service.HelloMethod("Bob"));
????? Console.WriteLine("Finished remote object call");
????? Console.WriteLine();
?
??????//Extract the returned data from the call context
????? LogicalCallContextData returnedData =
???????? (LogicalCallContextData)CallContext.GetData("test data");
?
????? Console.WriteLine(data.numOfAccesses);
?? ???Console.WriteLine(returnedData.numOfAccesses);
?? }
}
下面的代碼示例說(shuō)明如何使用 GetData 方法將主體和標(biāo)識(shí)對(duì)象傳輸?shù)竭h(yuǎn)程位置以進(jìn)行標(biāo)識(shí)。using?System;
using?System.Text;
using?System.Runtime.Remoting.Messaging;
using?System.Security.Principal;
?
public?class HelloServiceClass : MarshalByRefObject {
???static?int?n_instances;
???int?instanceNum;
?
???public?HelloServiceClass() {
????? n_instances++;
????? instanceNum = n_instances;
????? Console.WriteLine(this.GetType().Name + " has been created.
???????????? Instance # = {0}", instanceNum);
?? }
?
??~HelloServiceClass() {
????? Console.WriteLine("Destroyed instance {0} of
HelloServiceClass.", instanceNum);?????
?? }
?
???public?String?HelloMethod(String?name) {
?
??????//Extract the call context data
????? LogicalCallContextData data =
?????? ?? (LogicalCallContextData)CallContext.GetData("test data");?????
????? IPrincipal myPrincipal = data.Principal;
?????
??????//Check the user identity
??????if(myPrincipal.Identity.Name == "Bob") {
???????? Console.WriteLine("\nHello {0}, you are identified!",
myPrincipal.Identity.Name);
???????? Console.WriteLine(data.numOfAccesses);
????? }
??????else?{
???????? Console.WriteLine("Go away! You are not identified!");
?????????return?String.Empty;
????? }
?
????????// calculate and return result to client???
??????return?"Hi there " + name + ".";
?? }
}
4?詳細(xì)代碼設(shè)計(jì) 4.1 WebService代碼設(shè)計(jì) WebService端代碼主要進(jìn)行對(duì)數(shù)據(jù)庫(kù)的操作,建立起Client操作數(shù)據(jù)庫(kù)所需要的方法,供Client的端調(diào)用。1)class UserInfoMng() 用戶信息管理類,其中包括方法:
l?????????CreateUserInfo(string UserName string UserPwd) 建立用戶信息,調(diào)用存儲(chǔ)過(guò)程CreateUserInfo(@UserName,@UserPwd)
l?????????ModifyUserInfo(string UserName string UserPwd) 修改用戶信息,調(diào)用存儲(chǔ)過(guò)程ModifyUserInfo(@UserName,@UserPwd)
l?????????DeleteUserInfo() 刪除用戶信息,調(diào)用存儲(chǔ)過(guò)程DeleteUserInfo
(@UserID)
2)class UserAuthentication() 用戶認(rèn)證類,用來(lái)實(shí)現(xiàn)用戶角色、權(quán)限的設(shè)置,包括方法:
l?????????CreatePermissionInfo(string PermissionName string Permissi-
-onNote) 建立權(quán)限信息,調(diào)用存儲(chǔ)過(guò)程CreatePermissionInfo
(@PermissionName,@PermissionNote)
l?????????CreateRoleInfo(string RoleName string RoleNote) 建立角色信息,調(diào)用存儲(chǔ)過(guò)程CreateRoleInfo(@RoleName,@RoleNote)
l?????????DeleteRoleInfo() 刪除角色信息,調(diào)用存儲(chǔ)過(guò)程DeleteRoleInfo
(@RoleID)
l?????????GrantUserRole(string UserID string RoleID string UserRoleNote) 授予用戶角色,調(diào)用存儲(chǔ)過(guò)程GrantUserRole(@UserID,@RoleID,
@UserRoleNote)
l?????????DeleteUserRole() 刪除用戶角色,調(diào)用存儲(chǔ)過(guò)程DeleteUserRole
(@UserRoleID)
l?????????GrantRolePermission(string RoleID string PermissionID string RolePermissionNote) 授予角色權(quán)限,調(diào)用存儲(chǔ)過(guò)程GrantRolePermission(@RoleID,@PermissionID,@RolePermissionNote)
l?????????DeleteRolePermission() 刪除授予的角色權(quán)限,調(diào)用存儲(chǔ)過(guò)程
DeleteRolePermission(@RolePermissionID)
4.2 用戶認(rèn)證代碼設(shè)計(jì)(Client端) Client端調(diào)用WebService方法來(lái)進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),Client端代碼設(shè)計(jì)主要實(shí)現(xiàn)界面的功能,包括:權(quán)限設(shè)置、用戶管理、用戶授權(quán)管理和用戶認(rèn)證管理1)權(quán)限設(shè)置
class PermissionInfoMng() 用戶權(quán)限信息管理類,包括方法:
l?????????CreatePermissionInfo() 建立權(quán)限信息
2)用戶管理
class UserInfoMng() 用戶信息管理類,包括方法:
l?????????CreateUserInfo() 建立用戶信息
l?????????ModifyUserInfo() 修改用戶信息
l?????????DeleteUserInfo() 刪除用戶信息
3)用戶授權(quán)管理
class RoleInfoMng() 角色信息管理類,包括方法:
l?????????CreateRoleInfo() 建立角色信息
l?????????DeleteRoleInfo() 刪除角色信息
class UserRoleMng() 用戶角色管理類,包括方法:
l?????????GrantUserRole() 授予用戶角色
l?????????DeleteUserRole() 刪除用戶角色
class RolePermissionMng() 角色權(quán)限管理類,包括方法
l?????????GrantRolePermission() 授予角色權(quán)限
l?????????DeleteRolePermission() 刪除角色權(quán)限
4)用戶認(rèn)證管理
class Authentication() 用戶認(rèn)證類,包括方法:
l?????????Login(string UserName string UserPwd) 用戶登陸認(rèn)證,用戶認(rèn)證通過(guò)分配給用戶一個(gè)TicketID,否則TicketID則為null
l?????????Logout() 用戶正常退出
l?????????ExceptionLogout() 用戶異常退出
Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ia membolehkan pengguna melakukan operasi yang lebih mendalam dan penyesuaian sistem kebenaran Root ialah kebenaran pentadbir dalam sistem Android. Mendapatkan keistimewaan root biasanya memerlukan satu siri langkah yang membosankan, yang mungkin tidak mesra pengguna biasa, bagaimanapun. Dengan mendayakan kebenaran root dengan satu klik, artikel ini akan memperkenalkan kaedah yang mudah dan berkesan untuk membantu pengguna mendapatkan kebenaran sistem dengan mudah. Fahami kepentingan dan risiko kebenaran root dan mempunyai kebebasan yang lebih besar keizinan Root membolehkan pengguna mengawal sepenuhnya sistem telefon mudah alih. Kuatkan kawalan keselamatan, sesuaikan tema dan pengguna boleh memadamkan aplikasi yang diprapasang. Sebagai contoh, pemadaman fail sistem secara tidak sengaja menyebabkan ranap sistem, penggunaan keistimewaan akar yang berlebihan dan pemasangan perisian hasad secara tidak sengaja juga berisiko, walau bagaimanapun. Sebelum menggunakan keistimewaan root

Blue Wings Chaos Effect menampilkan pelakon watak yang pelbagai, masing-masing dengan identiti dan latar belakang yang unik. Atas sebab ini, editor telah menyusun khas pengenalan kepada watak BlazBlue Chaos Effect untuk semua pemain. Berapakah bilangan watak dalam Kesan Kekacauan BlazBlue Jawapan: Terdapat 7 aksara. 1. [Dewa Kematian] Ragnar Chad Bradedge (digelar RG, Nissan), abang dan kakaknya dibesarkan oleh biarawati gereja Suatu hari, salah seorang daripada enam wira penjahat menceroboh masuk, membunuh biarawati, dan membakar mereka. Gereja, membawa kakaknya pergi, meninggalkan adik lelakinya "The Weapon of Things" Ice Sword Snow Girl. 2. Noelle Vermillion Anak perempuan angkat keluarga Vermillion kelihatan hampir sama dengan kakak Ragnar. Selepas tamat pengajian, beliau menyertai badan pentadbir sebagai setiausaha kepada adik Ragnar. 3. λ-11 secara kolektif dikenali sebagai Lambda dan Sister Kesebelas. Selepas pemaju asal menyerah, Kokonoe menyelamatkan dan

Menurut berita pada 26 April, Wi-Fi U50S mudah alih 5G ZTE kini dijual secara rasmi, bermula pada 899 yuan. Dari segi reka bentuk penampilan, Wi-Fi Mudah Alih ZTE U50S adalah ringkas dan bergaya, mudah dipegang dan dibungkus. Saiznya ialah 159/73/18mm dan mudah dibawa, membolehkan anda menikmati rangkaian berkelajuan tinggi 5G pada bila-bila masa dan di mana-mana, mencapai pengalaman pejabat mudah alih dan hiburan tanpa halangan. Wi-Fi U50S mudah alih ZTE 5G menyokong protokol Wi-Fi 6 lanjutan dengan kadar puncak sehingga 1800Mbps Ia bergantung pada platform 5G berprestasi tinggi Snapdragon X55 untuk menyediakan pengalaman rangkaian yang sangat pantas. Ia bukan sahaja menyokong persekitaran rangkaian SA+NSA dwi-mod 5G dan jalur frekuensi Sub-6GHz, kelajuan rangkaian yang diukur malah boleh mencapai 500Mbps yang menakjubkan, yang mudah memuaskan.

Menurut berita pada 17 April, HMD bekerjasama dengan jenama bir terkenal Heineken dan syarikat kreatif Bodega untuk melancarkan telefon selip yang unik - The Boring Phone. Telefon ini bukan sahaja penuh dengan inovasi dalam reka bentuk, tetapi juga kembali kepada alam semula jadi dari segi kefungsian, bertujuan untuk membawa orang ramai kembali kepada interaksi interpersonal yang sebenar dan menikmati masa yang murni untuk minum bersama rakan-rakan. Telefon mudah alih yang membosankan menggunakan reka bentuk flip lutsinar yang unik, menunjukkan estetika yang ringkas namun elegan. Ia dilengkapi dengan paparan QVGA 2.8 inci di dalam dan paparan 1.77 inci di luar, memberikan pengguna pengalaman interaksi visual asas. Dari segi fotografi, walaupun hanya dilengkapi dengan kamera 30 megapiksel, ia sudah cukup untuk mengendalikan tugasan harian yang mudah.

Menurut berita pada 13 Mei, vivoX100s telah dikeluarkan secara rasmi malam ini Selain imej yang sangat baik, telefon baharu ini juga menunjukkan prestasi yang sangat baik dari segi isyarat. Menurut pengenalan rasmi vivo, vivoX100s menggunakan sistem penguatan isyarat universal yang inovatif, yang dilengkapi dengan sehingga 21 antena. Reka bentuk ini telah dioptimumkan semula berdasarkan skrin langsung untuk mengimbangi banyak keperluan isyarat seperti 5G, 4G, Wi-Fi, GPS dan NFC. Ini menjadikan vivoX100s sebagai telefon mudah alih dengan keupayaan penerimaan isyarat terkuat dalam sejarah vivo. Telefon baharu ini juga menggunakan reka bentuk keliling 360° yang unik, dengan antena diedarkan di sekeliling badan. Reka bentuk ini bukan sahaja meningkatkan kekuatan isyarat, tetapi juga mengoptimumkan pelbagai postur pegangan harian untuk mengelakkan masalah yang disebabkan oleh kaedah pegangan yang tidak betul.

Di tempat kerja, ppt ialah perisian pejabat yang sering digunakan oleh para profesional. Ppt yang lengkap mesti mempunyai halaman penghujung yang baik. Keperluan profesional yang berbeza memberikan ciri pengeluaran ppt yang berbeza. Mengenai penghasilan halaman akhir, bagaimana kita boleh mereka bentuknya dengan lebih menarik? Mari kita lihat cara mereka bentuk halaman akhir ppt! Reka bentuk halaman akhir ppt boleh dilaraskan dari segi teks dan animasi, dan anda boleh memilih gaya yang ringkas atau mempesonakan mengikut keperluan anda. Seterusnya, kami akan memberi tumpuan kepada cara menggunakan kaedah ekspresi inovatif untuk mencipta halaman akhir ppt yang memenuhi keperluan. Jadi mari kita mulakan tutorial hari ini. 1. Untuk penghasilan halaman akhir, apa-apa teks dalam gambar boleh digunakan yang penting tentang halaman akhir ialah ia bermakna pembentangan saya telah tamat. 2. Selain perkataan ini,

Menurut berita pada 3 April, komputer tablet M50 Mini Taipower yang akan datang ialah peranti dengan fungsi yang kaya dan prestasi yang berkuasa. Tablet kecil 8 inci baharu ini dilengkapi dengan skrin IPS 8.7 inci, memberikan pengguna pengalaman visual yang sangat baik. Reka bentuk badan logamnya bukan sahaja cantik tetapi juga meningkatkan ketahanan peranti. Dari segi prestasi, M50Mini dilengkapi dengan pemproses lapan teras Unisoc T606, yang mempunyai dua teras A75 dan enam teras A55, memastikan pengalaman berjalan yang lancar dan cekap. Pada masa yang sama, tablet ini juga dilengkapi dengan penyelesaian storan 6GB+128GB dan menyokong pengembangan memori 8GB, yang memenuhi keperluan pengguna untuk storan dan berbilang tugas. Dari segi hayat bateri, M50Mini dilengkapi dengan bateri 5000mAh dan menyokong Ty

Pengurusan kebenaran forum Discuz: Baca panduan tetapan kebenaran Dalam pengurusan forum Discuz, tetapan kebenaran adalah bahagian yang penting. Antaranya, penetapan kebenaran membaca amat penting, kerana ia menentukan skop kandungan yang boleh dilihat oleh pengguna yang berbeza dalam forum. Artikel ini akan memperkenalkan secara terperinci tetapan kebenaran membaca forum Discuz dan cara mengkonfigurasinya secara fleksibel untuk keperluan yang berbeza. 1. Konsep asas kebenaran membaca Dalam forum Discuz, kebenaran membaca terutamanya termasuk konsep berikut yang perlu difahami: Keizinan membaca lalai: Lalai selepas pendaftaran pengguna baharu
