日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#控制管理VisualSVN Server

發布時間:2025/3/13 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#控制管理VisualSVN Server 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C#控制管理VisualSVN Server 原文:C#控制管理VisualSVN Server

VisualSVN Server可以用WMI接口管理(Windows Management Instrumentation)。 VisualSVN Server安裝的計算機中,位于%VISUALSVN_SERVER%\WMI下的MOF文件描述了該接口。可以用C#代碼控制管理VisualSVN Server。

我機器VisualSVN安裝在D盤,MOF文件存在位置:D:\Program Files\VisualSVN Server\WMI\VisualSVNServer.mof

下面一些代碼供參考:

?

[csharp]?view plaincopyprint?
  • using?System.Management;??
  • using?System.Management.Instrumentation;??

  • 并添加?System.Management,System.Management.Instrumentation這兩個組件的引用。

    ?

    1)創建Subversion 用戶 'user1',密碼為'secret'

    ?

    [csharp]?view plaincopyprint?
  • ManagementClass?userClass?=?newManagementClass("root\\VisualSVN","VisualSVN_User",null);??
  • //?Obtain?in-parameters?for?the?method??
  • ManagementBaseObject?inParams?=??
  • userClass.GetMethodParameters("Create");??
  • //?Add?the?input?parameters.??
  • inParams["Name"]?=?"user1";??
  • inParams["Password"]?=?"secret";??
  • //?Execute?the?method?and?obtain?the?return?values.??
  • ManagementBaseObject?outParams?=??
  • userClass.InvokeMethod("Create",?inParams,?null);??

  • 2)創建新的repository 'Repo1'

    ?

    ?

    [csharp]?view plaincopyprint?
  • ManagementClass?repoClass?=?newManagementClass("root\\VisualSVN","VisualSVN_Repository",null);??
  • //?Obtain?in-parameters?for?the?method??
  • ManagementBaseObject?inParams?=??
  • repoClass.GetMethodParameters("Create");??
  • //?Add?the?input?parameters.??
  • inParams["Name"]?=?"Repo1";??
  • //?Execute?the?method?and?obtain?the?return?values.??
  • ManagementBaseObject?outParams?=??
  • repoClass.InvokeMethod("Create",?inParams,?null);??
  • ?

    ?3)設置SID S-1-5-32-545 ('BUILTIN\Users') Windows用戶組對'Test' repository的讀/寫權限. FYI: AccessLevel 值在MOF有描述: "0 - 無權限, 1 - 只讀, 2 - 讀/寫".
    [csharp]?view plaincopyprint?
  • ManagementClass?userClass?=?newManagementClass("root\\VisualSVN","VisualSVN_WindowsAccount",null);??
  • ManagementClass?authzClass?=?newManagementClass("root\\VisualSVN","VisualSVN_SecurityDescriptor",null);??
  • ManagementClass?permClass?=?newManagementClass("root\\VisualSVN","VisualSVN_PermissionEntry",null);??
  • ManagementObject?userObject?=?userClass.CreateInstance();??
  • userObject.SetPropertyValue("SID","S-1-5-32-545");??
  • ManagementObject?permObject?=?permClass.CreateInstance();??
  • permObject.SetPropertyValue("Account",?userObject);??
  • permObject.SetPropertyValue("AccessLevel",?2);??
  • ManagementObject?repo?=?newManagementObject("VisualSVN_Repository.Name='Test'");??
  • ManagementBaseObject?inParams?=??
  • authzClass.GetMethodParameters("SetSecurity");??
  • inParams["Object"]?=?repo;??
  • inParams["Permissions"]?=?newobject[]?{?permObject?};??
  • ManagementBaseObject?outParams?=??
  • authzClass.InvokeMethod("SetSecurity",?inParams,?null);??
  • 封裝后的Helper類: [csharp]?view plaincopyprint?
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.Linq;??
  • using?System.Management;//調用windows?WMI需引入此類庫??
  • ??
  • namespace?Whir.Software.InteralServerManage.SVNManager??
  • {??
  • ????///?<summary>??
  • ????///?????Visual?SVN?操作輔助類:使用WMI控制VisualSVN,MOF文件存在位置:C:\Program?Files\VisualSVN?Server\WMI\VisualSVNServer.mof??
  • ????///?</summary>??
  • ????public?class?SVNHelper??
  • ????{??
  • ????????#region?設置??
  • ?
  • ????????#region?設置倉庫權限??
  • ??
  • ????????public?enum?AccessLevel?:?uint??
  • ????????{??
  • ????????????NoAccess?=?0,??
  • ????????????ReadOnly,??
  • ????????????ReadWrite??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????設置倉庫權限(給用戶授權)??
  • ????????///?</summary>??
  • ????????///?<param?name="userName">用戶名</param>??
  • ????????///?<param?name="repository">SVN倉庫</param>??
  • ????????public?static?bool?SetRepositoryPermission(string?userName,?string?repository)??
  • ????????{??
  • ????????????return?SetRepositoryPermission(userName,?repository,?2);??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????設置倉庫權限(給用戶授權)??
  • ????????///?</summary>??
  • ????????///?<param?name="users">用戶名</param>??
  • ????????///?<param?name="repository">SVN倉庫</param>??
  • ????????public?static?bool?SetRepositoryPermission(List<string>?users,?string?repository)??
  • ????????{??
  • ????????????string?userNames?=?"";??
  • ????????????foreach?(string?user?in?users)??
  • ????????????{??
  • ????????????????userNames?+=?user?+?",";??
  • ????????????}??
  • ????????????return?SetRepositoryPermission(userNames,?repository,?2);??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????設置倉庫權限(給用戶授權)??
  • ????????///?</summary>??
  • ????????///?<param?name="userName">用戶名</param>??
  • ????????///?<param?name="repository">SVN倉庫</param>??
  • ????????///?<param?name="permission">?權限碼:0拒絕,1只讀,2讀寫</param>??
  • ????????public?static?bool?SetRepositoryPermission(string?userName,?string?repository,?int?permission)??
  • ????????{??
  • ????????????try??
  • ????????????{??
  • ????????????????string[]?users?=?userName.Split(new[]?{","},?StringSplitOptions.RemoveEmptyEntries);??
  • ????????????????IDictionary<string,?AccessLevel>?permissions?=?GetPermissions(repository,?"/");??
  • ????????????????foreach?(string?s?in?users)??
  • ????????????????{??
  • ????????????????????if?(!permissions.ContainsKey(s))??
  • ????????????????????{??
  • ????????????????????????permissions.Add(s,?AccessLevel.ReadWrite);??
  • ????????????????????}??
  • ????????????????}??
  • ????????????????SetPermissions(repository,?"/",?permissions);??
  • ????????????????return?true;??
  • ????????????}??
  • ????????????catch?(Exception)??
  • ????????????{??
  • ????????????????return?false;??
  • ????????????}??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????根據倉庫名取得倉庫實體??
  • ????????///?</summary>??
  • ????????///?<param?name="name"></param>??
  • ????????///?<returns></returns>??
  • ????????private?static?ManagementObject?GetRepositoryObject(string?name)??
  • ????????{??
  • ????????????return?new?ManagementObject("root\\VisualSVN",?string.Format("VisualSVN_Repository.Name='{0}'",?name),?null);??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????讀取權限實體??
  • ????????///?</summary>??
  • ????????///?<param?name="sid"></param>??
  • ????????///?<param?name="accessLevel"></param>??
  • ????????///?<returns></returns>??
  • ????????private?static?ManagementObject?GetPermissionObject(string?sid,?AccessLevel?accessLevel)??
  • ????????{??
  • ????????????var?accountClass?=?new?ManagementClass("root\\VisualSVN",??
  • ???????????????????????????????????????????????????"VisualSVN_WindowsAccount",?null);??
  • ????????????var?entryClass?=?new?ManagementClass("root\\VisualSVN",??
  • ?????????????????????????????????????????????????"VisualSVN_PermissionEntry",?null);??
  • ????????????ManagementObject?account?=?accountClass.CreateInstance();??
  • ????????????if?(account?!=?null)?account["SID"]?=?sid;??
  • ????????????ManagementObject?entry?=?entryClass.CreateInstance();??
  • ????????????if?(entry?!=?null)??
  • ????????????{??
  • ????????????????entry["AccessLevel"]?=?accessLevel;??
  • ????????????????entry["Account"]?=?account;??
  • ????????????????return?entry;??
  • ????????????}??
  • ????????????return?null;??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????設置倉庫權限??
  • ????????///?</summary>??
  • ????????///?<param?name="repositoryName"></param>??
  • ????????///?<param?name="path"></param>??
  • ????????///?<param?name="permissions"></param>??
  • ????????private?static?void?SetPermissions(string?repositoryName,?string?path,??
  • ???????????????????????????????????????????IEnumerable<KeyValuePair<string,?AccessLevel>>?permissions)??
  • ????????{??
  • ????????????ManagementObject?repository?=?GetRepositoryObject(repositoryName);??
  • ????????????ManagementBaseObject?inParameters?=?repository.GetMethodParameters("SetSecurity");??
  • ????????????inParameters["Path"]?=?path;??
  • ????????????IEnumerable<ManagementObject>?permissionObjects?=??
  • ????????????????permissions.Select(p?=>?GetPermissionObject(p.Key,?p.Value));??
  • ????????????inParameters["Permissions"]?=?permissionObjects.ToArray();??
  • ????????????repository.InvokeMethod("SetSecurity",?inParameters,?null);??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?????讀取倉庫權限??
  • ????????///?</summary>??
  • ????????///?<param?name="repositoryName"></param>??
  • ????????///?<param?name="path"></param>??
  • ????????///?<returns></returns>??
  • ????????private?static?IDictionary<string,?AccessLevel>?GetPermissions(string?repositoryName,?string?path)??
  • ????????{??
  • ????????????ManagementObject?repository?=?GetRepositoryObject(repositoryName);??
  • ????????????ManagementBaseObject?inParameters?=?repository.GetMethodParameters("GetSecurity");??
  • ????????????inParameters["Path"]?=?path;??
  • ????????????ManagementBaseObject?outParameters?=?repository.InvokeMethod("GetSecurity",?inParameters,?null);??
  • ??
  • ????????????var?permissions?=?new?Dictionary<string,?AccessLevel>();??
  • ??
  • ????????????if?(outParameters?!=?null)??
  • ????????????????foreach?(ManagementBaseObject?p?in?(ManagementBaseObject[])?outParameters["Permissions"])??
  • ????????????????{??
  • ????????????????????//?NOTE:?This?will?fail?if?VisualSVN?Server?is?configured?to?use?Subversion??
  • ????????????????????//?authentication.??In?that?case?you'd?probably?want?to?check?if?the?account??
  • ????????????????????//?is?a?VisualSVN_WindowsAccount?or?a?VisualSVN_SubversionAccount?instance??
  • ????????????????????//?and?tweak?the?property?name?accordingly.???
  • ????????????????????var?account?=?(ManagementBaseObject)?p["Account"];??
  • ????????????????????var?sid?=?(string)?account["SID"];??
  • ????????????????????var?accessLevel?=?(AccessLevel)?p["AccessLevel"];??
  • ??
  • ????????????????????permissions[sid]?=?accessLevel;??
  • ????????????????}??
  • ??
  • ????????????return?permissions;??
  • ????????}??
  • ?
  • ????????#endregion??
  • ?
  • ????????#region?創建用戶組??
  • ??
  • ????????///?<summary>??
  • ????????///?????創建用戶組??
  • ????????///?</summary>??
  • ????????public?static?bool?CreatGroup(string?groupName)??
  • ????????{??
  • ????????????try??
  • ????????????{??
  • ????????????????var?svn?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Group",?null);??
  • ????????????????ManagementBaseObject?@params?=?svn.GetMethodParameters("Create");??
  • ????????????????@params["Name"]?=?groupName.Trim();??
  • ????????????????@params["Members"]?=?new?object[]?{};??
  • ????????????????svn.InvokeMethod("Create",?@params,?null);??
  • ????????????????return?true;??
  • ????????????}??
  • ????????????catch?(Exception)??
  • ????????????{??
  • ????????????????return?false;??
  • ????????????}??
  • ????????}??
  • ?
  • ????????#endregion??
  • ?
  • ????????#region?創建用戶??
  • ??
  • ????????///?<summary>??
  • ????????///?????創建用戶??
  • ????????///?</summary>??
  • ????????///?<param?name="userName"></param>??
  • ????????///?<param?name="password"></param>??
  • ????????///?<returns></returns>??
  • ????????public?static?bool?CreateUser(string?userName,?string?password)??
  • ????????{??
  • ????????????try??
  • ????????????{??
  • ????????????????var?svn?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_User",?null);??
  • ????????????????ManagementBaseObject?@params?=?svn.GetMethodParameters("Create");??
  • ????????????????@params["Name"]?=?userName.Trim();??
  • ????????????????@params["Password"]?=?password.Trim();??
  • ????????????????svn.InvokeMethod("Create",?@params,?null);??
  • ????????????????return?true;??
  • ????????????}??
  • ????????????catch?(Exception)??
  • ????????????{??
  • ????????????????return?false;??
  • ????????????}??
  • ????????}??
  • ?
  • ????????#endregion??
  • ?
  • ????????#region??創建svn倉庫??
  • ??
  • ????????///?<summary>??
  • ????????///?????創建svn倉庫??
  • ????????///?</summary>??
  • ????????///?<param?name="name"></param>??
  • ????????///?<returns></returns>??
  • ????????public?static?bool?CreateRepository(string?name)??
  • ????????{??
  • ????????????try??
  • ????????????{??
  • ????????????????var?svn?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Repository",?null);??
  • ????????????????ManagementBaseObject?@params?=?svn.GetMethodParameters("Create");?//創建方法參數引用??
  • ????????????????@params["Name"]?=?name.Trim();?//傳入參數??
  • ????????????????svn.InvokeMethod("Create",?@params,?null);?//執行??
  • ????????????????return?true;??
  • ????????????}??
  • ????????????catch?(Exception)??
  • ????????????{??
  • ????????????????return?false;??
  • ????????????}??
  • ????????}??
  • ?
  • ????????#endregion??
  • ?
  • ????????#region??創建svn倉庫目錄??
  • ??
  • ????????///?<summary>??
  • ????????///?????創建svn倉庫目錄??
  • ????????///?</summary>??
  • ????????///?<param?name="repositories">?</param>??
  • ????????///?<param?name="name"></param>??
  • ????????///?<returns></returns>??
  • ????????public?static?bool?CreateRepositoryFolders(string?repositories,?string[]?name)??
  • ????????{??
  • ????????????try??
  • ????????????{??
  • ????????????????var?repository?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Repository",?null);??
  • ????????????????ManagementObject?repoObject?=?repository.CreateInstance();??
  • ????????????????if?(repoObject?!=?null)??
  • ????????????????{??
  • ????????????????????repoObject.SetPropertyValue("Name",?repositories);??
  • ????????????????????ManagementBaseObject?inParams?=?repository.GetMethodParameters("CreateFolders");??
  • ????????????????????inParams["Folders"]?=?name;??
  • ????????????????????inParams["Message"]?=?"";??
  • ????????????????????repoObject.InvokeMethod("CreateFolders",?inParams,?null);??
  • ????????????????}??
  • ????????????????return?true;??
  • ????????????}??
  • ????????????catch?(Exception)??
  • ????????????{??
  • ????????????????return?false;??
  • ????????????}??
  • ????????}??
  • ?
  • ????????#endregion??
  • ??
  • ????????//public?static?bool?SetMemberGroup(string?userName,?string?groupName)??
  • ????????//{??
  • ????????//????try??
  • ????????//????{??
  • ????????//????????var?userObj?=?GetGroupUsersArr(groupName);??
  • ????????//????????foreach?(ManagementBaseObject?baseObject?in?userObj)??
  • ????????//????????{??
  • ????????//????????????if?(baseObject["Name"].ToString().ToLower()?==?userName)??
  • ????????//????????????{??
  • ????????//????????????????return?false;??
  • ????????//????????????}??
  • ????????//????????}??
  • ????????//????????var?addUser?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_SubversionAccount",?null).CreateInstance();??
  • ????????//????????if?(addUser?!=?null)??
  • ????????//????????{??
  • ????????//????????????addUser.SetPropertyValue("Name",?userName);??
  • ????????//????????????userObj.Add(addUser);??
  • ????????//????????}??
  • ??
  • ????????//????????var?svnUser?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Group",?null);??
  • ????????//????????ManagementBaseObject?inParams?=?svnUser.GetMethodParameters("SetMembers");??
  • ????????//????????inParams["Members"]?=?new?object[]?{?userObj?};??
  • ????????//????????svnUser.InvokeMethod("SetMembers",?inParams,?null);??
  • ????????//????????return?true;??
  • ????????//????}??
  • ????????//????catch?(Exception)??
  • ????????//????{??
  • ????????//????????return?false;??
  • ????????//????}??
  • ????????//}??
  • ?
  • ????????#endregion??
  • ?
  • ????????#region?讀取??
  • ??
  • ????????///?<summary>??
  • ????????///?????讀取指定組里的用戶??
  • ????????///?</summary>??
  • ????????///?<param?name="groupName"></param>??
  • ????????///?<returns></returns>??
  • ????????public?static?List<string>?GetGroupUsers(string?groupName)??
  • ????????{??
  • ????????????var?listUsers?=?new?List<string>();??
  • ????????????var?group?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Group",?null);??
  • ????????????ManagementObject?instance?=?group.CreateInstance();??
  • ????????????if?(instance?!=?null)??
  • ????????????{??
  • ????????????????instance.SetPropertyValue("Name",?groupName.Trim());??
  • ????????????????ManagementBaseObject?outParams?=?instance.InvokeMethod("GetMembers",?null,?null);?//通過實例來調用方法??
  • ????????????????if?(outParams?!=?null)??
  • ????????????????{??
  • ????????????????????var?members?=?outParams["Members"]?as?ManagementBaseObject[];??
  • ????????????????????if?(members?!=?null)??
  • ????????????????????{??
  • ????????????????????????foreach?(ManagementBaseObject?member?in?members)??
  • ????????????????????????{??
  • ????????????????????????????object?name?=?member["Name"];??
  • ????????????????????????????listUsers.Add(name.ToString());??
  • ????????????????????????}??
  • ????????????????????}??
  • ????????????????}??
  • ????????????}??
  • ????????????return?listUsers;??
  • ????????}??
  • ??
  • ????????public?static?List<ManagementBaseObject>?GetGroupUsersArr(string?groupName)??
  • ????????{??
  • ????????????var?list?=?new?List<ManagementBaseObject>();??
  • ????????????var?group?=?new?ManagementClass("root\\VisualSVN",?"VisualSVN_Group",?null);??
  • ????????????ManagementObject?instance?=?group.CreateInstance();??
  • ????????????if?(instance?!=?null)??
  • ????????????{??
  • ????????????????instance.SetPropertyValue("Name",?groupName.Trim());??
  • ????????????????ManagementBaseObject?outParams?=?instance.InvokeMethod("GetMembers",?null,?null);?//通過實例來調用方法??
  • ????????????????if?(outParams?!=?null)??
  • ????????????????{??
  • ????????????????????var?members?=?outParams["Members"]?as?ManagementBaseObject[];??
  • ????????????????????if?(members?!=?null)??
  • ????????????????????{??
  • ????????????????????????foreach?(ManagementBaseObject?member?in?members)??
  • ????????????????????????{??
  • ????????????????????????????list.Add(member);??
  • ????????????????????????}??
  • ????????????????????}??
  • ????????????????}??
  • ????????????}??
  • ????????????return?list;??
  • ????????}??
  • ?
  • ????????#endregion??
  • ????}??
  • }??
  • 參考文章:

    1.http://msdn.microsoft.com/en-us/library/bb404655

    2.http://stackoverflow.com/questions/10017282/control-visualsvn-server-from-c-sharp

    posted on 2014-10-02 13:00 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

    轉載于:https://www.cnblogs.com/lonelyxmas/p/4004015.html

    總結

    以上是生活随笔為你收集整理的C#控制管理VisualSVN Server的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日日爱669 | 红桃视频黄色 | 麻豆网址 | 秋霞综合网 | 黄色小说在线免费观看 | 国产精品手机在线 | 欧美黄色一级 | 国产一级片一区 | 黄色av软件 | 日韩精品一区二区亚洲av | 欧美成人猛片aaaaaaa | www日本视频 | av特黄 | 久久午夜鲁丝片午夜精品 | 在线观看免费视频一区二区 | 日韩免| 日韩免费在线观看视频 | 三上悠亚ed2k | 999久久久 | 蜜臀久久精品久久久久 | 日本精品一区二区三区四区 | 日本东京热一区二区三区 | 日韩女优在线视频 | 瑟瑟视频网站 | 国产色在线 | 激情综合网五月 | 亚洲第一福利视频 | 亚洲欧美一区二区三区在线观看 | 国产一区二区视频在线免费观看 | 中文字幕无码人妻少妇免费 | 亚洲六月婷婷 | 国产五月婷婷 | 亚洲欧美一区二区在线观看 | 一级黄色片看看 | 糖心logo在线观看 | 亚洲中文字幕无码一区二区三区 | 欧美亚洲一二三区 | 国产在线色视频 | 美女黄视频网站 | 九色91popny蝌蚪 | 黄色在线播放 | 久久久久99精品成人片试看 | 38在线视频 | 日韩成人午夜影院 | 亚洲精品九九 | 制服 丝袜 激情 欧洲 亚洲 | 婷婷四房综合激情五月 | 久久国产劲爆∧v内射 | 国产黄a三级三级三级看三级男男 | 久草在在线视频 | 日韩videos| 美丽的姑娘在线观看 | 亚洲欧美视频 | 日日爽日日操 | 欧美猛交xxx| 天堂va蜜桃一区二区三区漫画版 | 69av导航| 亚洲美女屁股眼交8 | 精品欧美一区二区精品少妇 | 另类综合视频 | 四虎影院国产精品 | 四虎网站在线播放 | 国产xxxxwwww | 99精品视频免费版的特色功能 | 一本色道久久综合亚洲 | 中文字幕人妻一区二区在线视频 | 性爱一级视频 | 日日夜夜免费精品视频 | 国产精品欧美综合 | 日韩黄色片网站 | 亚州av一区二区 | 欧美日韩国产不卡 | 欧美专区综合 | 蜜桃av噜噜一区二区三区麻豆 | xxxxx黄色片 噜噜噜噜噜色 | 四月婷婷| 狠狠一区二区 | 久久视频中文字幕 | 97久久国产精品 | 高清久久久 | 韩国视频一区二区 | 亚洲综合中文 | 美女被啪啪 | 成年人国产视频 | 毛片一级在线观看 | 日日日日日日bbbbbb | 精品一区av | 影院一区 | 色老头av | 天天摸天天做天天爽水多 | 欧美成人福利视频 | 国产精品1000部啪视频 | 亚洲一区综合 | www.激情.com | 岛国裸体写真hd在线 | www.黄色网址.com | 一区二区三区激情视频 | 欧美一级高潮片 | 欧美在线观看www |