大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> Windows Media server SDK (2)

Windows Media server SDK (2)

时间: 2021-07-31 作者:daque

3. 媒介效劳认证 api microsoft® windows media™ services 认证 api 安排用来供给创造定制的称之为认证者认证插件组件的普通. 1) 简介 认证举行在消息交互之前的用户校验. 当一个存户端初始化一个乞求到认证使能的效劳器, 效劳器提醒用户认证身分. 常常诉求供给用户名和暗号. 所以效劳器和存户端必需都按照一个商定和议. 效劳器运用内置认证组件考证用户身分. windows media services 绑定了几个关系插入组件. windows media services 认证是鉴于com的东西. 运用 windows media services authentication api 不妨简单地创造一个新的考证者. 你也不妨将其同 windows media services 效劳器举行无缝集成贯串考证数据库用以考证存户端身分, 而且提醒效劳器输入. 每一个考证者安排用以实行一个典型的考证举措. 固然不妨有一种之上的考证办法备案在体例内里, 一次只不妨运用一个本领.  windows media services 须要一个扶助 free-threading(coinit_multithreaded) 的com组件. 如许, 当创造一个认证组件的功夫, 你必需制止运用 apartment-threading (coinit_apartmenthreaded) 形式的认证组件. 为了供给更好的本能和更好的扩充性, free-threading 并行形式不足线程安定个性. 所以, 动作com组件的创造者, 你必需控制保护东西本领的串行化挪用. 2) 考证典型 考证典型刻画了用来交互认证消息的安定和议. 典型对准存户端而言, 供给了存户端须要的消息进即将须要同效劳端交互的数据举行证明和组包. 各别的考证者不妨术语同一个典型, 然而考证各别用户运用各别的考证数据库. 如许, 典型只是刻画怎样同其余消息交互而不是消息是怎样举行考证的. 比方, 几个考证者不妨运用 http-basic 典型, 然而运用各别的用户数据库.  运转 windows media services 和 microsoft® windows media™ player 的效劳器扶助两个内置的认证和议典型: -- http-basic 和 ntlm. ntlm和议一个内置于ntlm数据库的鉴于乞求/相应的计划. http-basic 是一个鉴于文本的和议, 它经过 tcp/ip 传输 uue 源代码的用户名/暗号字符. ntlm所以越发安定, 然而http-basic更符合互联网络上头的散布式体例. 并且ntlm只实用于ntlm数据库. 各别的认证者不妨运用http-basic则不妨运用大肆的数据库. 【http-basic】http-basic 鉴于文本方法, 由用户名/暗号构成. 在该和议下, 存户端在试验翻开一个题目的功夫接受一个认证缺点消息. windows media player 经过表露一个对话框承诺用户输出用户名/暗号. 效劳器接受用户名/暗号将它们传播给考证者(运用base64源代码的字符串). 考证者经过用户数据库查看用户身分, 而且提醒效劳器考证截止. 即使考证的用户在各别于效劳器地方的域, 用必需按照"域名\用户名"的方法供给.http-basic 和议实用于互联网络运用步调. 它不妨不妨简单实用于定制的大概现有的用户数据库. 考证者不妨被安排接受存户端身分消息而且贯串大肆名域举行比配. 【ntlm】当一个用户试图翻开一个题目的功夫, ntlm 认证被使能, 效劳器运用一个加密的乞求/相应计划用以考证暂时对话的用户身分. 由于ntlm运用用户登岸创造贯穿的认证消息, 它须要存户端和效劳器在同一个域大概彼此断定的域之间. ntlm 无需传输用户的身分消息就不妨实行考证, 即效劳器无需考察用户名/暗号. ntlm 更符合intranet运用步调.乞求/相应计划囊括如次构成: - 存户端开始翻开一个效劳器上的题目, 而且接受一个认证缺点消息.- 存户端收到认证缺点消息此后, 发送其域名和计划机名到效劳器. 效劳器将数据传播给认证者- 认证者回传 ntlm 乞求, 而效劳器将数据归来存户端.- 存户端经过发送 ntlm challenge/response 到效劳器举行相应. 效劳器将数据传播给认证者查看- 认证者查看ntlm用户账号数据库的身分进口, 提醒效劳器截止. 效劳器按照截止赋予/中断考察. 3) 认证接口 windows media services authentication api 由三个com兼容的接口构成. 那些接口设置效劳器和考证者怎样共同处事. 考证者必需实行对准效劳器实行个中的两个接口来挪用她们的本领. 效劳器实行其他的接口—一个回调接口—经过考证者挪用. 运转 windows media services 的效劳器也挪用几个左右文东西来实行 ipropertymap -- 一个预组包通用接口来保护定名参数. - inssauthenticator用以实行考证者的初始化, 创造一个用户考证东西, 而后指定的考证典型. 考证者实行该接口, 而效劳器挪用那些本领 - inssuserauthentication 用以查看传自存户端到效劳器的认证数据, 该接口也供给需要的本领给效劳器来模仿存户端考察遏制查看. 认证者实行该接口, 而效劳器挪用其本领. - inssauthenticationcallback 用以奉告效劳器考证截止. 效劳器实行该接口, 而考证者挪用本领. 4) 怎样运用认证api 【进程】- 初始化 效劳器启用的功夫查问备案考证组件. 当启用胜利, 效劳器博得clsid创造范例. 而后效劳器挪用initialize本领初始化范例东西, 将一个南针传播给效劳器左右文. 这个左右文包括了刻画效劳器个性的属性. 那些熟习起码包括: 1. 效劳器名和别号 2. 本子号 initialize 本领供给了考证者时机来实行大肆计划考证处事, 诸如创造一个到用户账号数据库的贯穿, 而且调配考证者须要的体例资源. 初始化功夫, 考证者也奉告效劳器能否存户端的交互数据是鉴于文本的, http-basic 鉴于文本, 而 ntlm 是二进制. 提防: 在效劳器启用的功夫, initialize() 本领老是在一切的考证者组件上被挪用. 该本领纵然在组件被遏止的功夫也挪用. 动作一个截止, 即使大肆遏止组件归来一个波折代码, 效劳器保持启用, 然而没有充满的消息供给给认证工作举行震动.- 赢得认证典型 初始化此后, 效劳器挪用 getauthenticationtype 本领赢得考证者运用的认证典型. 该典型必需不妨为 windows media player 所辨别. 暂时 windows media player 简介扶助 http-basic 和 ntlm - 运用认证东西 由一个考证者处置的用户考证东西实行 inssauthenticator 接口, 在历次用户贯穿的功夫查看和考证用户消息. 每一个贯穿到效劳器的用户创造各别的考证东西. 效劳器挪用考证者的 createuserauthentication 本领创造一个用户考证东西. 用户贯穿范例的考证经过用户认证东西实行.- 认证怎样处事 历次一个用户端创造一个翻开题目乞求, 效劳器提醒 windows media player 用户须要考证. 尽管运用何种考证消息, 考证老是包括和存户端, 效劳器和考证者之间的数据交互. 效劳器从存户端赢得数据, 诸如用户名/暗号, 传播数据给考证者举行查看. 考证者运用那些数据乞求效劳器传播给用户账号数据库, 而且经过 callback 本领提醒效劳器考证截止.  数据交互连接连接领会要么考证者经过 callback 本领提醒效劳器考证接受, 要么展示缺点. 表面上, 数据交互不妨长久步调, 然而大普遍考证计划只是反复一到三次. windows media player 提醒用户输出用户名/暗号, 将数据颁布到效劳器, 效劳器而后传播给考证者举行查看, 沿着这运用其本人的独占用户数据库考证数据, 而且提醒效劳器截止. 效劳器而后按照截止赋予大概褫夺存户端考察数据的权利.- 认证后 认证此后, 组件提醒效劳器截止, 附带传播给用户认证左右文一个南针. 用户表白被考证, 效劳器复制该南针加入用户左右文的 nss_user_authentication 属性. 认证截止和用户名经过 inssuserauthentication 接口博得. 当效劳器胜利举行认证, 它不妨在任何须要的功夫模仿存户端用户. 【备案考证者】经过安置 windows media services 组件, 下列键被键入备案表:[hkey_local_machine\software\microsoft\netshow\servers\\default\authentication]启用的功夫, 效劳器检验和测定备案表和范例化键下的使能认证者列表.下列代码衍射了一个须要键入认证键的数据:[hkey_local_machine\software\microsoft\netshow\servers\\default\authentication\sample authentication module]"clsid"="{16da4310-2955-11d1-9e98-006097d2d7cf}""description"="sample authentication module""author"="developer name""copyright"="(c) developer 1998""enabled"=dword:00000001clsid 和 enabled 键值是必需的. 其他的值是引荐的.效劳器检逐一查备案表中的考证者清单的每一个考证者, 一旦遇到一个使能考证者, 效劳器挪用而且运用到遏止和重启的功夫为止. 4. 媒介效劳事变提醒和认证 api  microsoft® windows media™ services 供给一个 api 用以开拓功夫提醒和认证组件. 那些组件经过供给东西来认证正在播出的实质, 监督效劳器状况, 考查工作扩充了效劳器功效. 1) 简介 作家动作指的是为创造运用的一种安定体制, 用来受权大概褫夺对于受养护的资源的考察权力. 对于 windows media services 一致的例子有 pay-per-view (ppv), pay-per-minute (ppm) 等, 和免费然而敏锐的实质. 作家动作偕同认证动作一道处事. 常常一个用户即使认证波折就不完备考察乞求资源的权利. 一个实质供给商不妨采用能否受权一个已认证用户有限/无穷的考察乞求的题目. 公布动作, 从另一个观点指的是为效劳器所运用的用来遏止创造大肆须要记载的功夫, 大概其余典型的须要汇报的消息. 效劳器经过运用插件实行认证和公布工作. 按照各别贸易诉求插件供给各别的认证计划. 运转 windows media services 的效劳器扶助同声运转大肆数目的创造. 每一个创造不妨指定一个一定的认证/公布事变汇合. windows media services 事变公布和认证api使你能经过供给一个插件和议来创造符合你的贸易诉求的处置计划. 那些插件在一定事变触发认证动作. api 让你不妨融合仍旧创造的运用步调的构造. 对准 windows media services 的 com 组件必需扶助 free-threading (coinit_multithreaded) 形式. 如许, 当创造一个认证组件的功夫不要运用 apartment-threading (coinit_apartmenthreaded). 为了供给更好的本能和扩充性, free-threading 同步形式是不足线程安定个性的. 如许动作组件的创造者, 必需控制对于东西本领的串行化挪用. 动作 com 东西, 那些创造必需在范例化之前精确备案. 启用的功夫效劳器检验和测定组件确定何种典型的事变须要认证和公布. 当一个存户端提出乞求, 效劳器视图触发一个一定的事变, 而且乞求关系组件实行相应. 在实行受权/废除之后, 效劳器提醒组件事变的输入.  比方, 组件不妨指定 play 事变须要认证和公布. 当一个存户端乞求效劳器 play 一个题目, 效劳器从组件查问承诺, 而后试验在受权之进步行一个安定的偿付安置. 即使认证胜利, 效劳器发端播发题目, 报告组件该 play 事变触发. 组件考查播发事变举行计费. 2) 事变公布和认证接口 windows media services event notification and authorization api 由三个接口构成: 认证组件实行 insseventnotification , insseventauthorization. 效劳器实行 insseventauthorizationcallback, 而且它的本领为组件挪用. 还要实行基础的 iunknown 接口的 addref, release, queryinterface. 运转 windows media services 的效劳器也包括几个左右文东西, 它们实行 ipropertymap -- 一个通用的预组包的接口, 用来保护定名参数. 接口简介: - insseventnotification用来初始化所有认证组件, 指定来自效劳器挪用的事变, 而且处置公布事变. 组件实行该接口, 效劳器挪用. - insseventauthorization用来指定谁人事变必需在实行之前获得考证, 处置认证事变. 组件实行, 效劳器挪用 - insseventauthorizationcallback报告效劳器认证处置截止. 效劳器实行, 组件挪用. 认证组件必需不妨处置和认证一律处置事变. 如许每一个组件必需实行 insseventnotification. 每一个组件不妨采用性地相应效劳器触发地事变. 你实行 innseventnotification::gethandledevents 本领指定须要发送的公布的事变典型. 除去处置事变, 事变公布接口还在效劳器启用的功夫初始化组件, 监督效劳器的执奇迹态和在效劳器离线的功夫中断自己. insseventauthorization 接口只是处置认证事变. 只是在须要认证的功夫实行该接口的组件. 由两个本领:  - insseventauthorization::getauthorizedevents指定乞求认证的事变典型 - insseventauthorization::authorizeevent实行认证. 一个事变不妨乞求认证, 然而不许报告; 反过来一律. 对于认证事变不妨备案大肆数目的组件. 此时效劳器顺序挪用组件的认证接口本领. 效劳器犯得着获得一切组件的承诺才举行受权; 要不处置受权, 而且报告一切组件.如许, 组件必需赋予一切权力范畴除外的认证乞求以受权. 从本能观点商量, 简单组件处置各别认证计划的本领优于多重组件处置一个简单认证计划. 简单组件实行无助于于贬低各别插件和效劳器之间的接口数目. 处事过程: - 初始化启用的功夫效劳器检索体例备案表赢得一切安置的事变公布和认证创造列表, 启用胜利此后, 效劳器运用clsid创造范例. 而后挪用各个组件的 insseventnotification::initialize 本领初始化范例东西, 传播一个南针给效劳器左右文. 该左右文东西包括刻画一定效劳器个性的属性:效劳器称呼, 效劳器假造称呼, 效劳器本子号效劳器左右文东西在效劳器运转功夫灵验. 而后效劳器不妨传播福建左右文到组件, 诸如一个用户左右文东西大概一个表白式左右文东西.提防: 在效劳器启用功夫, initialize() 本领老是在一切效劳器摆设的组件上头挪用, 纵然被遏止. 截止, 即使大肆遏止创造归来波折, 效劳器保持启用, 然而由于没有举行认证处事的充满消息没辙实行流. - 树立一个心跳心跳为一个插件用来准时其余事变以监督效劳器执奇迹态. 你不妨让效劳器经过指定一个dwmshearbeatperiod参数恰巧而且在insseventnotification::initialize本领中回传效劳器到达使能心跳的手段. 即使心跳使能, 效劳器在意跳周期之间挪用 insseventnotification::onheartbeat 本领. 树立 dwmsheartbeatperiod 参数为0遏止心跳.  - 指定公布事变初始化此后, 效劳器挪用每一个组件的 insseventnotification::gethandledevents 本领. 该本领用来指定那些事变经过效劳器触发挪用: 存户端贯穿/割断效劳器, 翻开/封闭题目, 启用遏止题目, 跳过大概使能存户端认证 - 尝试认证扶助在树立认证事变此后, 效劳器挪用 insseventauthorization::queryinterface 本领一致能否认证接口被扶助. 一切组件必需实行 insseventnotification. 但是, 实行 insseventauthorization 是可选的. 当认证被扶助, 效劳器挪用 insseventauthorization::getauthorizedevents 本领赢得认证事变数组, 而后确定哪个事变须要认证. - 指定认证事变组件指定那些事变必需被认证. 运用 insseventauthorization::getauthorizedevents 本领实行认证计划. 该本领和指定公布事变一致. 然而对准认证的事变更少罢了. 比方, 在存户端割断之前乞求认证就不实际, 由于效劳器没辙构造存户端割断.你不妨指定下列事变须要认证: 存户端贯穿到效劳器, 翻开一个题目, 播发一个题目, 跳过存户端认证 - 认证运转 windows media services 的效劳器挪用 insseventauthorization::authorizeevent 本领来确定能否实行和工作关系联的事变乞求认证. 当挪用该本领, 效劳器运用事变, 存户端和须要认证的实质的关系消息被供给给组件.即使认证搀杂且繁杂, 异步实行 authorizeevent 本领, 起用另一个线程确定能否乞求必需批准. 异步实行引导一个纵然挪用归来, 并且使得效劳器不妨在认证功夫自在处置其余工作. 而即使认证大略, 该本领就必需是同步的.在认证的结果, 认证组件挪用效劳器的 insseventauthorizationcallback::oneventauthorized 本领. 效劳器回传一个指向 insseventauthorizationcallback 的南针. 认证组件尽管 authorizeevent 本领的同步/异步归来都必需挪用该本领. 即使 authorizeevent 本领波折, 不会有回调爆发.要独一性表白乞求认证事变, 效劳器和认证组件都彼此传播 dwrequestid 参数. 效劳器经过 insseventauthorization::authorizeevent 本领传播. 认证组件必需经过 insseventauthorizationcallback::oneventauthorized 回传同样参数给效劳器. - 传播动静数据给认证者也不妨运用运转时动静爆发的数据实行认证. 存户端不妨经过流的 url 传播特殊的消息. 效劳器在领会 url 和确定谁人文献流向存户端的功夫忽视(?)反面的一切字符. 不管怎样, 字符串共存在 presentation context 的 nss_present_physical_name 属性中. 认证组件控制领会字符串.比方, 用户须要察看题目为 trainingabc.asf 的当地效劳器上的文献. 用户供给如次: mms://localhost/trainingabc.asf从另一个观点, 认证者在运转时不妨采用不运用数据库, 然而鉴于用户的个人消息, 诸如用户称呼和雇用消息. 用户不妨如许到达手段:mms://localhost/trainingabc.asf?user=joe;id=2316 即使题目几节 a, b, c—不妨抄写一个批准让用户采用谁人节:mms://locahost/trainingabc.asf?lesson=b - 事变提醒效劳器也不妨运用 insseventnotification::gethandledevents 提醒组件大肆备案事变. 公布指定清楚事变乞求典型和认证截止.你不妨采用 insseventnotification::onevent 举行各别相应. 假如一个用户采用播发一个题目, 而且该是被一个组件备案为公布和认证的. 效劳器乞求该组件核对用户. 用户在被认证播发题目此后, 效劳器就为用户翻开题目, 要不就不翻开. 即使不须要认证, 效劳器在为用户翻开题目此后也报告组件该题目正在被播发.对于多个备案的使能组件, 效劳器逐一查问认证. 惟有一切组件供给受权时, 事变才承诺爆发, 而后提醒每一个组件.即使有大肆组件中断乞求, 效劳器遏止查问过程于第一个中断东西. 认证波折, 效劳器所以不使能事变. 效劳器提醒一切计划组件该事变未爆发.提防: 即使你承诺鉴于 http 的流考察 -- 单播, 大概引导在对准 -- 贯穿, 翻开和播放的多重认证和通. 这是由于, 在 http 运用的功夫, 存户端运用分别的 http 乞求赢得 asf的头部和身材. 对于效劳器, 那些是多重乞求. 你的事变公布和认证组件必需供给这种情景的精确处置. 当 http 代替 mms, 该动作是的它变得艰巨, 固然是可行的. 3) 备案事变公布和认证组件 对立路途 [hkey_local_machine\software\microsoft\netshow\servers\default\event notification] [hkey_local_machine\software\microsoft\windows media\servers\default\event notification\sample billing module] "clsid"="{16da4310-2955-11d1-9e98-006097d2d7cf}" "description"="sample billing module" "author"="developer name" "copyright"="(c) developer 1997" "enabled"=dword:00000001 提防: 每一个插件都扶助事变公布, 而认证是可选的. 效劳器挪用 queryinterface 确定组件师傅扶助认证. 不许增添无效消息, 要不效劳器在检验和测定备案表波折的功夫会遏止承诺创造新的贯穿. 4) 左右文东西 左右文东西是一个实行 ipropertymap 接口的东西, 保护一组数据. 当封装的数据设置效劳器, 用户大概其余实质, 即是 server context, user context, presentation context, 大概 command context.

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.