首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软媒体平台+表单认证

微软媒体平台+表单认证
EN

Stack Overflow用户
提问于 2012-01-01 15:03:28
回答 1查看 318关注 0票数 2

窗体身份验证不起作用。当SMF试图访问服务器上需要特定用户角色的*..ism/Manifest文件时,Auth cookie不会发送到服务器。

我所做的: 1.创建新的Silverlight平滑流模板,支持RIA WCF。2.配置web.config:

代码语言:javascript
复制
<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=[SERVER];Initial Catalog=[CATALOG];User ID=[USER];Pwd=[PASSWORD];" providerName="System.Data.SqlClient" />
代码语言:javascript
复制
<system.web>
      <authentication mode="Forms">
        <forms loginUrl="~/Account/LogOn" timeout="2880" />
      </authentication>
      <membership>
        <providers>
          <clear />
          <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
        </providers>
      </membership>
      <profile>
        <providers>
          <clear />
          <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
        </providers>
        <properties>
          <add name="Gender" />
          <add name="Birthday" />
          <add name="AvatarPath" />
        </properties>
      </profile>
      <roleManager enabled="true">
        <providers>
          <clear />
          <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
            <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> 
        </providers>
      </roleManager>

  1. 添加身份验证服务和正确的用户类(添加3个支持)。客户端的
  2. 将此添加到app.xaml.cs:

代码语言:javascript
复制
     public App()
     {
     //Default things...
     InitializeWebContext();
     }

    private void InitializeWebContext()
    {
        WebContext webContext = new WebContext();
        var fa = new FormsAuthentication();
        var ac = new AuthenticationDomainService1();
        fa.DomainContext = ac;
        fa.Login(new LoginParameters("user", "password"), (y) =>
                                                                    {
                                                                        if (!y.HasError)
                                                                        {
                                                                            this.RootVisual = new MainPage();
                                                                        } 
                                                                    }, null);
        webContext.Authentication = fa;
        ApplicationLifetimeObjects.Add(webContext);
        Resources.Add("WebContext", WebContext.Current);
    }

访问受到目标目录中的web.config文件的限制:

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.web>
            <authorization>
            <allow roles="Role_name" />     
            <deny users="*" />                                      
            </authorization>
        </system.web>
    </configuration>

用户存在于此角色中。

当我使用在Xaml (大兔子)中指定的默认视频时,一切都很好。但是,当我将mediasource更改为服务器上的受限制区域的路径时,就会得到一个访问错误。在客户端,我成功地获得了用户凭据。

Fiddler展示了下一步:当我尝试访问RIA上的另一个撤销的方法(RequiresAuthentication)时,客户端会发送Auth,但是当SMFPlayer尝试访问媒体源时,就不会发送该cookie。

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-08 19:52:07

我找到了一些解决办法:如果将流文件传输到子目录中,并限制对它的访问(而不是带有"ism“文件的目录)。清单将颁发给匿名用户,但数据流仅用于注册(当播放器尝试触摸数据流时,它成功地附加了auth cookie)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8693700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档